我用构建分析器破解 Bun 编译速度之谜

I made a build visualizer to understand Bun's compile times

我用构建分析器破解 Bun 编译速度之谜

我开发了开源工具 buildprof,旨在追踪 Linux 下软件编译的时间消耗。受 Jarred Sumner 关于 Bun 从 Zig 迁移到 Rust 后编译速度提升 5 倍的言论启发,我复现了 Bun 1.3.14 和 1.4.0 的构建过程。通过可视化进程树,我发现 Zig 版本构建缓慢的主因是 Full LTO 导致的链接器瓶颈以及单模块编译限制了并行度。相比之下,Rust 版本利用 ThinLTO 和超过 90 个 crates 的拆分,实现了更高效的并行编译。这一过程揭示了构建系统配置对性能的巨大影响。

有时候构建缓慢仅仅是因为代码量太大,但更多时候存在可修复的问题:糟糕的并行度、重复工作、依赖下载或巨大的编译器调用。
  1. anaqin

    写得真好!我原本期待作者能得出 Bun 的 Zig 构建方式比 Rust 快得多的结论,不过即便如此,这依然是一次深入的剖析。

  2. t43562

    这让人想起 Electric Insight,那是一款很棒但专有的工具。

    利用这类工具,你可以进行海量的分析:从估算增加更多核心能让构建快多少(即是否值得添加更多核心),到对比两次构建的差异:为什么一次构建表现糟糕而另一次很好——哪些任务参数不同,或者哪些任务在两次构建中并未同时出现?

  3. dmpyatyi

    只是来留言支持一下这篇帖子 :) 工作太棒了!!!

  4. jiehong

    不错!

    macOS 上对应的工具是什么?

  5. flimflamm

    如果能看到 LLM 自动进行优化或试验的最佳输入形式会很有趣。是可视化表示最好,还是其他方式?

同日更多故事

2026-09-12