Go

Go ขั้นสูง

ภายในของ compiler, runtime, scheduler, cgo, แพ็กเกจ unsafe, assembly, build tags

20 คำถามสัมภาษณ์·
Senior
1

เครื่องมือใดใน toolchain ของ Go ที่ใช้ตรวจสอบโค้ด assembly ที่ compiler สร้างขึ้น?

คำตอบ

คำสั่ง go tool compile -S แสดงโค้ด assembly ที่ compiler ของ Go สร้างขึ้น เครื่องมือนี้จำเป็นต่อการทำความเข้าใจการ optimize ของ compiler และการวิเคราะห์โค้ดที่สำคัญต่อประสิทธิภาพ นอกจากนี้ยังสามารถใช้ go build -gcflags=-S เพื่อให้ได้ผลลัพธ์เดียวกันระหว่างการ build แบบมาตรฐาน

2

วัตถุประสงค์หลักของแพ็กเกจ unsafe ใน Go คืออะไร?

คำตอบ

แพ็กเกจ unsafe ช่วยให้สามารถข้ามระบบ type ของ Go เพื่อทำการดำเนินการกับหน่วยความจำในระดับต่ำ โดยเปิดเผยฟังก์ชันเช่น Pointer, Sizeof, Alignof และ Offsetof ที่ช่วยให้จัดการ address ของหน่วยความจำได้โดยตรง ไม่แนะนำให้ใช้ ยกเว้นในกรณีเฉพาะเช่นการทำงานร่วมกับโค้ด C หรือการ optimize ที่สำคัญ

3

scheduler ของ Go (GPM) จัดระเบียบการทำงานของ goroutine อย่างไร?

คำตอบ

scheduler ของ Go ใช้โมเดล GPM: G แทน goroutine, P แทนโปรเซสเซอร์เชิงตรรกะ (GOMAXPROCS) และ M แทน thread ของระบบ แต่ละ P มี run queue ในเครื่องของ goroutine เมื่อ M ถูกบล็อกที่ syscall ตัว P สามารถถูกแยกออกและเชื่อมโยงกับ M อื่นเพื่อดำเนินการ goroutine ต่อไปได้ การออกแบบนี้ช่วยให้การจัดตารางงานมีประสิทธิภาพโดยมี context switch น้อยที่สุด

4

cgo คืออะไรและควรใช้ในบริบทใด?

5

directive ใดที่ช่วยให้คอมไพล์โค้ดแบบมีเงื่อนไขตาม OS หรือสถาปัตยกรรมเป้าหมาย?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Go อื่นๆ

พื้นฐาน Go

Junior
25 คำถาม

โครงสร้างข้อมูล Go

Junior
20 คำถาม

อินเทอร์เฟซใน Go

Junior
18 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

พื้นฐาน Goroutine

Junior
20 คำถาม

Channels

Junior
22 คำถาม

Go Modules

Mid-Level
18 คำถาม

เซิร์ฟเวอร์ HTTP

Mid-Level
24 คำถาม

ไคลเอนต์ HTTP

Mid-Level
18 คำถาม

การเข้ารหัส JSON

Mid-Level
20 คำถาม

Database/SQL

Mid-Level
22 คำถาม

แพ็กเกจ context

Mid-Level
20 คำถาม

Testing

Mid-Level
22 คำถาม

รูปแบบ Concurrency

Mid-Level
24 คำถาม

ไพรมิทีฟการซิงโครไนซ์

Mid-Level
22 คำถาม

เฟรมเวิร์กเว็บ Go

Mid-Level
20 คำถาม

การออกแบบ REST API

Mid-Level
20 คำถาม

gRPC

Mid-Level
22 คำถาม

Reflection

Senior
20 คำถาม

การจัดการหน่วยความจำ

Senior
24 คำถาม

การเพิ่มประสิทธิภาพการทำงาน

Senior
22 คำถาม

Generics

Senior
20 คำถาม

Go Design Patterns

Senior
24 คำถาม

Microservices

Senior
24 คำถาม

ความปลอดภัยและการยืนยันตัวตน

Senior
24 คำถาม

Docker & Containerization

Senior
20 คำถาม

Kubernetes Basics

Senior
22 คำถาม

การพัฒนา CLI

Senior
20 คำถาม

เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี