为什么我的Visual C ++ 2008 x64构建比x86构建慢5倍?

时间:2009-10-30 20:56:47

标签: visual-c++ build-process 64-bit visual-c++-2008

我一直在努力改善产品的构建时间。我们正在使用持续集成,我们的构建现在需要2个小时才能运行。

我查看了NANT时序并看到了很多比它们应该更慢的地方,但跳出来的是我们的Visual C ++项目的x64版本。以下是与同一代码的x86版本相比的时序示例:

发布Win32:8'49“ 发布x64:41'8“

x64慢了约5倍。同样,这是完全相同的代码。

有没有其他人在x86和x64之间遇到过这种构建时间差异?是否有缩小差距的建议?

注意:我知道整体提高构建性能的工具,比如Xoreax分布式构建和TeamCity并发构建,我也会调查这两个,但我不禁觉得应该有一些如何在不诉诸第三方工具的情况下重新获得x64版本。

2 个答案:

答案 0 :(得分:2)

检查两者的项目构建设置是否相同。当您选择x64时,VS基本上会加载新的项目设置,它们可能非常不同。例如,检查是否在x64中启用了增量构建。

答案 1 :(得分:0)

我不知道,但如果为x64重写整个代码生成器,我不会感到惊讶。如果您进行测试构建并使用进程资源管理器来查看编译器所引入的DLL,那么在构建两个不同的目标时,您将能够看到编译器是否使用完全不同的二进制文件。您可能会发现x64后端是一个托管的.NET应用程序,而x86后端是旧的本机。只是一个猜测。可能不是真的。您可以在运行进程资源管理器时调查这两者的CPU /磁盘/ RAM使用情况。