【问题标题】:Precompiled headers - choosing files预编译头文件 - 选择文件
【发布时间】:2014-07-21 09:11:53
【问题描述】:

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

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

你知道预编译头文件的大小对编译时间的影响吗?我有 10GB 的内存。像 Visual Studio 允许的那样添加到 stdafx.h 文件是个好主意吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 2012-07-09
      • 1970-01-01
      • 2020-07-19
      • 2015-01-03
      • 2015-01-05
      • 2012-09-08
      • 2011-02-25
      相关资源
      最近更新 更多