预编译头-选择文件

Precompiled headers - choosing files

本文关键字:选择 文件 编译      更新时间:2023-10-16

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

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

你知道预编译头文件的大小对编译时间的影响吗?我有10GB的内存。这是一个好主意添加到stdafx.h文件尽可能多的visual studio让我吗?

如果你有一个文件包含在你的许多翻译单元中,那么是的,它应该进入PCH。

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

你还应该考虑前向声明和粉刺习惯用法。根据我的经验,对于大型项目,减少头依赖关系通常会最大程度地减少构建时间。