这里有几个人建议切换到新的 WD Velociraptor 10000rpm 硬盘。杂志文章也赞扬了表演。 我买了一个并将我的旧系统镜像到它。编译速度的提高有点令人失望:
我有1.5G内存的 E6600 。这是一个C ++ - 包含1200个文件的项目。构建在Visual Studio 2005中完成。声学管理已关闭(无论如何都没有大的差别)。
出了什么问题,或者这种适度的加速真的是全部,我可以期待吗?
修改 有人建议增加RAM。我现在做了,并通过将RAM加倍到3GB获得了最小的增益(3-5%)。
答案 0 :(得分:6)
您是否正在使用/ MP选项(未记录,您必须手动将其输入到处理器选项中)以启用源级并行构建?这将加速你的编译,而不仅仅是一个更快的硬盘。从那里获得的收益是微不足道的。
答案 1 :(得分:2)
Visual Studio 2005可以并行构建多个项目,默认情况下会在多核机器上构建,但是根据项目相互依赖的方式,它可能无法并行构建它们。
如果你的1200 cpp文件在一个项目中,你可能没有使用所有的CPU。如果我没弄错的话,C6600就是四核CPU。
戴夫
答案 2 :(得分:1)
我认为硬盘读取不是编译的瓶颈。实际上,很少需要从硬盘读取/写入硬盘。您可能会看到更多ram或更快处理器的性能提升。
答案 3 :(得分:1)
我从结果中建议你的硬盘延迟速度不是你想要的瓶颈,或者你的项目已经接近建设尽可能快。其他需要考虑的事项是:
答案 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开销大大减少。
让你知道我正在编写什么,以及什么;
我的构建时间从大约135秒到65秒。
缺点是您的源文件存在于RAM中,因此您需要对源代码控制更加警惕。如果您的机器断电,您将失去所有未经修改的更改。当你关闭机器时,某些RAM驱动器会将自己保存到磁盘这一事实会略微缓解,但是,您将失去上次结账或上次关机时的所有内容。
此外,您必须为该软件付费。但是既然你正在寻找硬盘驱动器,也许这不是什么大不了的事。
好处是编译时间增加,而且exes已经存在于内存中,因此启动时间和调试时间要好一些。但真正的好处是编译时间。