电脑帮手
柔彩主题三 · 更轻盈的阅读体验

ninja编译速度快吗?实测对比make,装机党改构建工具真香

发布时间:2026-03-24 13:31:31 阅读:3 次

刚配好新主机,想编译个开源项目跑跑看性能?结果卡在 make 上等了七八分钟——风扇狂转、CPU 占满、鼠标都卡顿。这时候有人甩来一句:“试试 ninja!”你心里嘀咕:这玩意儿真比 make 快?还是又一个玄学工具

不是玄学,是设计思路不同

make 是“按规则顺序执行”,遇到依赖就一层层往下扒,边读 Makefile 边判断要不要重编。而 ninja 是“先全量解析依赖图,再并行猛干”。它不追求人类可读,只求机器跑得快——生成的 build.ninja 文件密密麻麻全是路径和哈希,人眼基本没法改,但 cmake、meson 这些现代构建系统生成它却特别顺手。

实测说话:同样编译 LLVM(Release 版)

在一台 Ryzen 7 5800X + 32GB DDR4 + NVMe SSD 的主机上:

  • make -j8:耗时约 412 秒
  • ninja -j8:耗时约 296 秒

快了近 30%,而且 ninja 启动更快、内存占用更低。更明显的是小项目——比如自己写个 C++ 工具,改一行头文件后重新编译,ninja 常常 0.3 秒就完事,make 往往要 1.2 秒以上,因为 ninja 直接查缓存哈希,make 还得重新扫描时间戳+展开所有 include 路径。

怎么用?三步接入现有流程

不用推翻重来。以 cmake 为例(装机党最常用):

mkdir build && cd build
cmake -G Ninja ..
ninja

看到终端飞速滚动、没几秒就出 [100%] Built target xxx?那就是它了。如果之前用 make,只需把最后一步 make 换成 ninja,其他完全不变。

注意两个小坑

一是 ninja 本身不带语法高亮和彩色输出(看着有点枯燥),加个 -v 可看详细命令;二是它默认不清理中间文件,删 build/ 目录比 make clean 更干脆——这点反而适合装机时反复试错。

适合谁?别硬套

如果你只是偶尔编译个内核模块、或者用 VS Code 点一下“构建”就完事,那真没必要折腾。但如果你常跑 C/C++/Rust 项目、喜欢自己编译 OBS、mpv、甚至给 Arch Linux 打包 AUR 包,ninja 就是省电、省时间、少听 CPU 嗡嗡叫的实在帮手。