【发布时间】:2017-12-21 10:54:49
【问题描述】:
我有一个项目并使用 VS 和 IncrediBuild 进行了 3 次干净的构建
IncrediBuild 的设置:2 台机器同时编译,两台机器的性能大致相同
-
VS 编译器
- 编译时间:~10 分钟
- 链接:~3-4 分钟
-
IncrediBuild
- 编译时间:~4-5 分钟(=> 符合预期,大约一半时间)
- 链接:~10 分钟(=> 意外,应该是大约同一时间)
这可以在几个构建中重现(我做了 3 个干净的构建)。我知道,IncrediBuild 无法并行化一个项目的链接,但为什么与 VS 链接相比,使用 IncrediBuild 链接速度较慢?
我的测试表明,我使用 IncrediBuild 没有任何好处,我正在考虑使用几台机器来构建我的项目以提高构建速度,但如果链接速度那么慢(而且慢得多),甚至使用 10 台机器对我没有好处,也不值得花钱,因为链接时间正在破坏我从改进编译时间中获得的任何好处。
我在一家大公司工作,购买 CPU 电源很便宜而且没问题,但 IncrediBuild 也需要花钱,目前不值得。任何想法我可以尝试或我可能做错了什么?我刚刚安装了 IncrediBuild 并使用默认设置。
设置
- Visual Studio 2017
- Windows 10 机器(代理)和 Windows 7 机器(协调器)
- 1GBit商业网络
- IncrediBuild 9.0.1
【问题讨论】:
-
也许你启用了链接时间优化?
-
我启用了增量链接,但没有优化(没有
\LTCG或类似的) -
在这个答案stackoverflow.com/questions/3349521/what-is-incremental-linking 中,据说增量链接会增加链接时间。也许 incredibuild 不执行增量链接,这可以解释 MSVC 具有更好的链接时间。
-
这 (incredibuild.com/webhelp/#advanced_incredilink.html) 说,您可以在 2008 年之前为 VS 启用此功能,所以假设它适用于较新的版本?虽然找不到明确说明...
-
我对 incredibuild 一无所知,但它是写在“VS 2008 及更早版本”的。我不能说我也知道 MSVC。您提到增量链接的事实(我第一次听说这个)可能表明您实际上不知不觉地知道了答案。
标签: c++ visual-studio visual-studio-2017 incredibuild