为啥在重新构建解决方案后构建速度更快?
Posted
技术标签:
【中文标题】为啥在重新构建解决方案后构建速度更快?【英文标题】:Why build happens faster after doing a rebuild of Solution?为什么在重新构建解决方案后构建速度更快? 【发布时间】:2014-08-05 11:43:46 【问题描述】:我正在将 Visual Studio IDE 用于一个包含数百万行代码和数百个文件的大型 C++ 项目。
我注意到,每次在对多个文件进行一些小的更改后构建解决方案时,每次后续构建都会花费越来越多的时间。
一旦我重建了解决方案,虽然重建花费了相当长的时间,但每次后续构建都比以前构建预重建快得多。
我做了一个假设,可能是编译器将多个 obj 文件合二为一。每次我们进行更改并构建解决方案时,都必须将大 obj 分解为较小的 obj,从而增加更多 obj 文件的数量。由于添加了越来越多的 obj 文件,这种方式链接会很慢。
但是,我无法为我的奇思妙想找到任何支持.. 当然也无法在我的同事面前证明这一点。
build-after-build 变慢的原因是什么?为什么重建后变快?
【问题讨论】:
也许是***.com/a/14641474/420446 原生 C++ 还是托管?在本机中,我怀疑这很可能是由于预编译的标头。尝试删除/重建它,看看你是否得到相同的效果。我从未使用过托管 C++。 本机跨平台 cpp .. 并且@willll 它会一直发生,而不仅仅是在断电之后。 我们有同样的问题,重建需要 10 分钟,头文件的小改动需要 30 分钟 【参考方案1】:我不知道为什么会发生这种情况,但我可以告诉你 obj 文件没有融合在一起。
【讨论】:
以上是关于为啥在重新构建解决方案后构建速度更快?的主要内容,如果未能解决你的问题,请参考以下文章
为啥构建后步骤 (xcopy) 偶尔会在 TeamCity 构建中以代码 2 退出?
Flutter:为啥我的构建器在 Web 服务调用后没有重新加载?