为什么WD Velociraptor没有加速我的VC ++ - 编译显着?

时间:2008-10-10 13:48:53

标签: visual-c++ hardware performance compilation

这里有几个人建议切换到新的 WD Velociraptor 10000rpm 硬盘。杂志文章也赞扬了表演。 我买了一个并将我的旧系统镜像到它。编译速度的提高有点令人失望:

  • 在我的旧三星驱动器(SATA,7200)上,编译时间 16:02
  • 在Velociraptor上,构建需要 15:23

我有1.5G内存的 E6600 。这是一个C ++ - 包含1200个文件的项目。构建在Visual Studio 2005中完成。声学管理已关闭(无论如何都没有大的差别)。

出了什么问题,或者这种适度的加速真的是全部,我可以期待吗?

修改 有人建议增加RAM。我现在做了,并通过将RAM加倍到3GB获得了最小的增益(3-5%)。

10 个答案:

答案 0 :(得分:6)

您是否正在使用/ MP选项(未记录,您必须手动将其输入到处理器选项中)以启用源级并行构建?这将加速你的编译,而不仅仅是一个更快的硬盘。从那里获得的收益是微不足道的。

答案 1 :(得分:2)

Visual Studio 2005可以并行构建多个项目,默认情况下会在多核机器上构建,但是根据项目相互依赖的方式,它可能无法并行构建它们。

如果你的1200 cpp文件在一个项目中,你可能没有使用所有的CPU。如果我没弄错的话,C6600就是四核CPU。

戴夫

答案 2 :(得分:1)

我认为硬盘读取不是编译的瓶颈。实际上,很少需要从硬盘读取/写入硬盘。您可能会看到更多ram或更快处理器的性能提升。

答案 3 :(得分:1)

我从结果中建议你的硬盘延迟速度不是你想要的瓶颈,或者你的项目已经接近建设尽可能快。其他需要考虑的事项是:

  1. hdd访问时间(尽管由于总线速度限制,您可能无法做很多事情)
  2. RAM访问速度和大小
  3. 处理器速度
  4. 减少后台流程

答案 4 :(得分:1)

从提高硬盘驱动器的速度增加约6% 。就像豪勒说的那样。抓住一些更快 ram和PCU。

答案 5 :(得分:1)

正如许多人已经指出的那样,你可能没有攻击真正的瓶颈。随机改变部分(或代码)就像人们可以说的“低音ackwards”。 您首先确定性能瓶颈,然后进行更改。

如果您的CPU或I / O受限,Perfmon可以帮助您获得良好的概述,您希望查看CPU利用率,磁盘队列长度和IO字节,以便第一眼看到正在发生的事情。

答案 6 :(得分:1)

这实际上只是替换硬盘的速度相当大。此时您可能是内存或CPU绑定的。这些天1.5GB很轻,RAM也很便宜。你可能会看到一些相当大的改进,内存更多。

作为建议,如果您安装了多个驱动器,则可以尝试将构建目录设置为与源文件不同的磁盘上的某个位置。

至于这个评论:

  

如果你的1200 cpp文件在一个项目中,你可能没有使用所有的CPU。如果我没弄错的话,C6600就是四核CPU。

实际上,C6600并不算什么。有一个E6600和一个Q6600。 E6600是双核,Q6600是四核。在我的开发机器上,我使用四核CPU,虽然我们的项目有超过1200个文件,但在编译期间它仍然易于处理器限制(尽管更快的硬盘驱动器仍然有助于加快速度!)。

答案 7 :(得分:0)

1200源文件很多,但它们都不可能超过几百K,所以虽然它们都需要被读入内存,但这不会花费很长时间。

将您的系统内存提升到4G(是的,是的,我知道32位操作系统具有的3.somethingorother限制),并且查看您的CPU将比仅使用更快的磁盘提供更多的性能提升开车可以。

答案 8 :(得分:0)

VC 2005在每个项目中不会编译多个文件,因此要么转移到VC 2008以使用两个CPU内核,要么将解决方案分解为多个库子项目以进行多个编译。

答案 9 :(得分:0)

我把所有的资源放到了一个ram驱动器上,使我的编译时间缩短了一半。

我尝试了这些家伙http://www.superspeed.com/desktop/ramdisk.php,安装了1GB的ramdrive,然后将我的所有源码复制到它上面。如果直接从RAM构建,则IO开销大大减少。

让你知道我正在编写什么,以及什么;

  • WinXP 64位
  • 4GB ram
  • 2。? GHz双核处理器
  • 62 C#项目
  • 约250kloc。

我的构建时间从大约135秒到65秒。

缺点是您的源文件存在于RAM中,因此您需要对源代码控制更加警惕。如果您的机器断电,您将失去所有未经修改的更改。当你关闭机器时,某些RAM驱动器会将自己保存到磁盘这一事实会略微缓解,但是,您将失去上次结账或上次关机时的所有内容。

此外,您必须为该软件付费。但是既然你正在寻找硬盘驱动器,也许这不是什么大不了的事。

好处是编译时间增加,而且exes已经存在于内存中,因此启动时间和调试时间要好一些。但真正的好处是编译时间。