Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 预编译头-选择文件_C++_Visual Studio_Compilation_Visual Studio 2013_Compiler Optimization - Fatal编程技术网

C++ 预编译头-选择文件

C++ 预编译头-选择文件,c++,visual-studio,compilation,visual-studio-2013,compiler-optimization,C++,Visual Studio,Compilation,Visual Studio 2013,Compiler Optimization,我试图选择合适的文件作为预编译头,以减少编译时间。我使用VS2013。 我知道应该是代码中的文件(例如库等,以避免重新编译所有内容),或者是代码中我不会做太多更改的文件,或者是代码中随处或几乎处处包含的文件 例如,如果我有150个文件要编译,其中25个包含一些头文件X.hpp(来自外包库),该怎么办。我应该将其添加到预编译头中吗?这有意义吗?其他文件(不包括X.hpp的文件)如何?它们不会有更长的编译时间吗 您知道预编译头的大小如何影响编译时间吗?我有10GB的内存。尽可能多地向stdafx.h

我试图选择合适的文件作为预编译头,以减少编译时间。我使用VS2013。 我知道应该是代码中的文件(例如库等,以避免重新编译所有内容),或者是代码中我不会做太多更改的文件,或者是代码中随处或几乎处处包含的文件

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


您知道预编译头的大小如何影响编译时间吗?我有10GB的内存。尽可能多地向stdafx.h文件中添加visual studio允许的内容,这是一个好主意吗?

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

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

你也应该考虑前向声明和piml习惯用法。根据我的经验,在大型项目中,减少头依赖通常会最大程度地减少构建时间