build2 比 Ninja 更快:如何超越光速基准
Faster Than Ninja
Ninja 常被视为构建系统的“光速”基准,但 build2 通过原生设计和多线程优化,在 Xerces-C++ 的实测中甚至超越了它。Ninja 依赖 CMake 生成构建文件,这额外消耗了数秒时间,而 build2 作为原生系统避免了这一开销。通过禁用部分高级功能如精确变更检测和文件缓存压缩,build2 的构建时间从 3.8 秒降至 3.35 秒,比 Ninja 快 2.2%。其核心优势在于激进的缓存策略、全链路多线程处理,以及将头文件依赖提取与部分预处理结合的独特构建模型。即使承担了比 Ninja 更多的工作,build2 依然能实现更快的构建速度,证明了不同设计思路带来的性能突破。
简而言之,我们必须以不同的方式做事,而不仅仅是做得更好。