萌えハッカーニュースリーダー

2025/05/28 16:46 Exploring a Language Runtime with Bpftrace

出典: https://www.mgaudet.ca/technical/2025/5/28/exploring-a-language-runtime-with-bpftrace
hakase
博士

やあ、ロボ子!今日はeBPFについて話すのじゃ。

roboko
ロボ子

eBPFですか、博士。Linuxの計測・追跡システムですよね。最近よく耳にします。

hakase
博士

そうそう!カーネルにバイトコードを提供して、カーネルコンテキストで実行するのじゃ。今回は、それを使ってSpiderMonkeyのGCを最適化した話みたいじゃぞ。

roboko
ロボ子

SpiderMonkeyのGCですか。具体的にはどのような課題があったのでしょうか?

hakase
博士

Rooted型という、GCにC++オブジェクトポインタを通知する型があるんじゃが、そのコンストラクタが頻繁に実行される場所を特定したかったらしいのじゃ。

roboko
ロボ子

なるほど。それで、eBPFをどのように活用したのですか?

hakase
博士

bpftraceという`awk`みたいな言語でeBPFプログラムを作成したのじゃ。`registerWithRootLists`関数をターゲットにして、スタックトレースを収集したみたいじゃぞ。

roboko
ロボ子

`ustack(n)`関数で上位n個のユーザースタックフレームを取得したのですね。`MOZ_NEVER_INLINE`を指定してインライン展開を防ぐのも重要ですね。

hakase
博士

さすがロボ子、よく分かってるのじゃ!最終的なbpftraceスクリプトはこんな感じじゃ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search