我有一个巨大的项目,大约 150 000 LOC 的 C++ 代码。构建时间大约是 15 分钟。该项目由许多不同规模的子项目组成。
我为每个子项目构建了单独的预编译头文件,但是当我使用它们时,构建时间大致相同。似乎构建时间减少了 5-10%,而不是更多。
肯定会使用预编译头文件,我使用-Winvalid-pch
选项并且我尝试使用编译-H
器选项进行编译,我的预编译头文件出现在输出中并带有 'bang' 符号,这意味着编译器能够使用预编译头文件。
我所有的预编译头文件都不是很大,每个文件大约 50Mb。我使用 python 脚本,在这里找到来生成最常用的预编译头列表,所以我的预编译候选列表非常好。
是否有任何免费/开源工具可用于构建优化?似乎标准make
实用程序无法测量不同目标的构建时间。我找不到使用make
. 我不是在谈论依赖分析或高级的东西。我只想知道大部分时间浪费在哪些目标上。
此外,GCC 在处理预编译头文件方面似乎效率很低。我无法使任何子项目的构建速度显着加快,在一个构建时间为三分钟的项目上,我获得的最大加速是 20%。与使用 GCC 在 linux 上优化构建时间相比,购买更快的带有固态驱动器的机器似乎更容易、更便宜。