Visual Studio 2010中的多进程构建:值得吗?

时间:2010-05-26 14:48:08

标签: c++ visual-studio-2010 build performance

我开始使用VS2010测试我们的C ++软件,构建时间非常糟糕(30-45分钟,大约是VS2005的两倍)。我一直在阅读有关多进程编译的/ MP开关。不幸的是,它与我们使用的一些功能不兼容,我们使用了#import,增量编译和预编译头。

你有一个类似的项目,你在关闭预编译头之类的东西后尝试了/ MP开关吗?你有更快的构建吗?

我的机器在4核机器上运行64位Windows 7,具有4 GB RAM和快速SSD存储。病毒扫描程序被禁用,并且是一个非常小的软件环境。

编辑: Martin和jdehaan指出MP与预编译头不兼容。详细信息为here

4 个答案:

答案 0 :(得分:3)

你确定pch与/ MP不兼容吗?
您当然可以使用pch在vs2008上进行多核构建(虽然奇怪的是仅在IDE内而不是在命令行上)

答案 1 :(得分:2)

我自己的经验是VS2005和VS2008。有了这两个,我们关闭并行构建,因为它不能可靠地用于我们的大型项目。同时使用两者,启用PCH可带来很好的性能优势。虽然如果不使用PCH和VS2008,与VS2005相比,编译时间确实很糟糕。我不知道这与VS2010有多大关系。

编辑:与VS2010有同样的问题......但随后我们从WinXP升级到Win7,所有的Visual Studio问题在稳定性和性能方面都消失了。在我之前的问题中,并行构建指的是msbuild项目并行性,在这种情况下,“大”代表大型解决方案。

答案 2 :(得分:2)

绝对。我在一个大型应用程序上工作,在修改内容时花了大约35分钟来构建(在Visual Studio中)。我们使用IncrediBuild(为了加快编译过程,从35分钟到5分钟) - 真正分发。在你的情况下,/ MP开关可能会有所不同 - 但与distcc(unix或兼容环境)或IncrediBuild相比并不是那么多。

答案 3 :(得分:1)

多机构建(使用IncrediBuild)对我们来说是值得的。因此,在单个机器上构建多进程很可能是值得的。