预编译头 - 选择文件

时间:2014-07-21 09:11:54

标签: c++ visual-studio compilation visual-studio-2013 compiler-optimization

我尝试选择适当的文件作为预编译标头,以减少编译时间。我用的是VS2013。 我知道应该是我的代码中的文件(例如库等不重新编译所有内容)或我的代码中的文件,我不会改变我的代码中的很多或文件,这些文件包含在任何地方或几乎所有地方。< / p>

如果我有150个文件要编译,其中25个包含一些头文件X.hpp(来自外包库),该怎么办?我应该将它添加到预编译的头文件中吗?是否有意义?其余文件(不包含X.hpp的文件)怎么样?他们的编译时间更长了吗?

您知道预编译头的大小对编译时间的影响吗?我有10GB的ram内存。像visual studio一样添加到stdafx.h文件是否是个好主意?

1 个答案:

答案 0 :(得分:2)

如果您的文件包含在许多翻译单元中,那么它应该包含在PCH中。

构建时间优化是一个反复试验的过程。 PCH可以帮助分摊编制某些东西的成本,但这不是一个完整的解决方案。如果你正在大量使用模板(生成编码),那么模板实例化会导致很多构建开销,这可能是PCH无法帮助的。

你还应该考虑前向声明和pimpl习语。根据我的经验,对于大型项目,减少标头依赖性通常会导致构建时间的最大缩短。