
高度な Go
コンパイラ内部、runtime、scheduler、cgo、unsafe パッケージ、assembly、build tags
20 面接問題·
Senior
1コンパイラが生成した assembly コードを検査できる Go ツールチェーンのツールはどれですか?
1
コンパイラが生成した assembly コードを検査できる Go ツールチェーンのツールはどれですか?
回答
go tool compile -S コマンドは、Go コンパイラが生成した assembly コードを表示します。このツールは、コンパイラの最適化を理解し、パフォーマンスが重要なコードを分析するために不可欠です。標準的なビルド時に同じ結果を得るために go build -gcflags=-S を使用することもできます。
2Go の unsafe パッケージの主な目的は何ですか?
2
Go の unsafe パッケージの主な目的は何ですか?
回答
unsafe パッケージを使用すると、Go の型システムを回避して低レベルのメモリ操作を実行できます。Pointer、Sizeof、Alignof、Offsetof などの関数を公開しており、メモリアドレスを直接操作できます。その使用は、C コードとの相互運用や重要な最適化などの特定のケースを除いて推奨されません。
3Go の scheduler(GPM)は goroutine の実行をどのように編成しますか?
3
Go の scheduler(GPM)は goroutine の実行をどのように編成しますか?
回答
Go の scheduler は GPM モデルを使用します。G は goroutine、P は論理プロセッサ(GOMAXPROCS)、M はシステムスレッドを表します。各 P は goroutine のローカル run queue を持ちます。M が syscall でブロックされると、P は切り離されて別の M に関連付けられ、goroutine の実行を継続できます。この設計により、context switch を最小限に抑えた効率的なスケジューリングが可能になります。
4
cgo とは何で、どのような状況で使用すべきですか?
5
ターゲットの 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問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
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問