有没有办法让 G++/clang++ 的编译时间和 MSVC 一样快?

Is there a way to make G++/clang++ compile times as fast as MSVC?

对于我的测试,我需要编译几千个 C++ 文件,这些文件有很多共同的代码。因为并非所有编译器都符合(或更宽松),所以我在 windows 和 linux.

上使用 g++、clang++ 和 msvc 执行所有测试

为了缩短编译时间,我使用已经预编译的 headers 作为通用代码。此外,我编写了一个小型预处理器应用程序以允许“统一构建”(将 *.cpp 文件组合成一个 *.cpp 文件)。

目前我得到以下编译时间(随机测试用例):

(约10次)

(约1.4倍)

(约1.9倍)

不幸的是,我的代码包含很多模板/模板实例化,它们似乎只“保存”在 Microsoft PCH 中。

你知道有什么方法可以使 g++ 和 clang++ 的编译时间相似吗?您对如何改进我的编译时间有什么建议吗?

在这里您可以看到 chrome/clang 跟踪(-ftime-trace 和 pch):

至少在当前的 clang 主干中,我看到结合模板和预编译头文件/模块在改进编译时间方面取得了一些显着进步。

也许 gcc 实现了类似的东西 - 我们将拭目以待。 但感谢您的评论。