Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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 2010_Visual Studio_Visual Studio 2012 - Fatal编程技术网

C++ 为什么在重建解决方案后生成速度更快?

C++ 为什么在重建解决方案后生成速度更快?,c++,visual-studio-2010,visual-studio,visual-studio-2012,C++,Visual Studio 2010,Visual Studio,Visual Studio 2012,我使用VisualStudioIDE进行一个大型的C++项目,有数百万行代码和数百个文件。 我注意到,每次在对多个文件进行一些小的更改后构建解决方案时,每次后续构建都会花费越来越多的时间 一旦我重建了解决方案,尽管重建花费了相当长的时间,但每个后续构建都比以前的构建预重建快得多 我假设编译器可能会将多个obj文件放在一个文件中。每次我们进行更改和构建解决方案时,都必须将大的obj分解为小的obj,从而增加更多的obj文件。由于添加了越来越多的obj文件,这种链接方式会很慢 然而,我找不到任何支持

我使用VisualStudioIDE进行一个大型的C++项目,有数百万行代码和数百个文件。 我注意到,每次在对多个文件进行一些小的更改后构建解决方案时,每次后续构建都会花费越来越多的时间

一旦我重建了解决方案,尽管重建花费了相当长的时间,但每个后续构建都比以前的构建预重建快得多

我假设编译器可能会将多个obj文件放在一个文件中。每次我们进行更改和构建解决方案时,都必须将大的obj分解为小的obj,从而增加更多的obj文件。由于添加了越来越多的obj文件,这种链接方式会很慢

然而,我找不到任何支持我幻想的东西。。当然,我无法在我的同事面前证明这一点


构建后的缓慢生成的原因是什么?为什么在重建后它会变得很快?

< p>我没有答案来解释为什么会发生这种情况,但是我可以告诉你,ObjC++文件没有被融合在一起。< /P>也许是本地C++还是托管的?在native中,我怀疑这很可能是由于预编译的头。试着删除/重建它,看看是否能得到同样的效果。我从未使用过托管C++。而且@willl它一直都在发生,而不仅仅是在断电之后。我们也有同样的问题,重建需要10分钟的时间,在头文件中做一些小的更改构建也需要30分钟