eBPF を使用した Firefox のメモリ割り当ての追跡

2025-05-31

著者は、eBPF(拡張バークレーパケットフィルタ)を使用して、FirefoxのJavaScriptエンジンであるSpiderMonkeyにおけるメモリ割り当てを追跡しました。最初の目的は、メモリ管理の最適化のために、頻繁に作成されるRootedオブジェクトのソースコードの位置を特定することでした。bpftraceツールとユーザープローブ(uprobe)を使用して、著者は`registerWithRootLists`関数を正常に追跡し、ustack関数を使用してコールスタック情報を取得しました。最終的に、著者はレポートを作成し、いくつかのバグレポートを提出しました。これにより、メモリ割り当てが最適化され、`registerWithRootLists`への数千万回もの呼び出しが削減されました。

開発