注目★★★★★Hacker News
Bunのビルドを24分から15分へ、buildprofで遅延を可視化
30秒で把握
- 1buildprofがLinuxビルドのプロセス木と実行時間を可視化
- 2BunのZig版でFull LTOリンクが16分超を占有
- 3ThinLTO適用で24分から15分へ短縮、単一モジュールの並列性が課題
要約
開発者は、Linux上のソフトウェアビルドをプロセス単位で追跡するOSSツール buildprof を公開した。buildprof は子プロセスを含む実行木を時系列に並べ、並列性不足、重複処理、依存関係の取得、巨大なcompiler/linker処理を可視化する。Bunの検証では、Zig版のビルドが24分かかる主因として、終盤に単独実行されるFull LTOリンクが16分超を占めることを特定した。BunとWebKitのLTOをThinLTOへ変更するとビルドは15分まで短縮したが、Rust版が90超のcrateへ処理を分散する一方、Zig版は単一モジュールに集約しており、並列化の差が残った。buildprof は Linux の任意のビルドコマンドに接頭辞を付けて実行できる。
あなたへの影響
Linuxでビルド時間の調査やCIの遅延分析を行うチームは、遅いビルドをbuildprofで記録し、linker・LTO・依存取得・並列化のどこがボトルネックかを確認するとよい。
推奨:ptraceを使うため、ファイルイベント追跡のオーバーヘッドが問題になる場合は--no-file-eventsでプロセス時系列に絞れる。