6

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

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

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

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

编辑: 有些人建议增加 RAM。我现在这样做了,通过将我的 RAM 翻倍至 3GB,获得了最小的收益 (3-5%)。

4

10 回答 10

6

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

于 2008-10-10T14:09:35.507 回答
2

Visual Studio 2005 可以并行构建多个项目,并且默认情况下会在多核计算机上这样做,但取决于您的项目如何相互依赖,它可能无法并行构建它们。

如果您的 1200 个 cpp 文件位于单个项目中,则您可能没有使用所有 CPU。如果我没记错的话,C6600 是四核 CPU。

戴夫

于 2008-10-10T13:57:48.013 回答
1

我想硬盘读取不是你编译的瓶颈。实际上,很少有东西需要从硬盘读取/写入硬盘。您可能会看到更多内存或更快的处理器带来更多的性能提升。

于 2008-10-10T13:50:58.087 回答
1

我从结果中建议您的硬盘延迟速度不是您正在寻找的瓶颈,或者您的项目已经接近于尽可能快地构建。其他需要考虑的项目是:

  1. 硬盘访问时间(尽管由于总线速度限制,您可能无法对此做很多事情)
  2. RAM访问速度和大小
  3. 处理器速度
  4. 减少后台进程
于 2008-10-10T13:51:41.410 回答
1

通过改进硬盘驱动器即可提高约 6% 的速度。就像豪勒所说的那样。抓住一些更快的内存和 PCU。

于 2008-10-10T13:52:10.783 回答
1

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

如果您受 CPU 或 I/O 限制,Perfmon 可以帮助您获得一个很好的概览,您想查看 CPU 利用率、磁盘队列长度和 IO 字节以初步了解正在发生的事情。

于 2008-10-10T13:55:28.797 回答
1

对于更换硬盘而言,这实际上是一个相当大的速度提升。此时您可能会受到内存或 CPU 的限制。现在 1.5GB 很轻,而且 RAM 很便宜。您可能会看到更多内存带来的一些相当大的改进。

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

至于这条评论:

如果您的 1200 个 cpp 文件位于单个项目中,则您可能没有使用所有 CPU。如果我没记错的话,C6600 是四核 CPU。

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

于 2008-10-10T14:08:22.453 回答
0

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

将您的系统内存提高到 4G(是的,是的,我知道 32 位操作系统的 3.something 或other 限制),并且也许查看您的 CPU 会比仅使用更快的磁盘驱动器提供更多的性能改进。

于 2008-10-10T14:01:34.230 回答
0

VC 2005 每个项目一次编译的文件不超过一个,因此要么迁移到 VC 2008 以使用你的两个 CPU 内核,要么将你的解决方案分解为多个库子项目以进行多个编译。

于 2008-10-10T14:32:20.297 回答
0

通过将所有源代码放在内存驱动器上,我将编译时间减半。

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

让您了解我正在编译的内容以及内容;

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

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

缺点是您的源文件位于 RAM 中,因此您需要对源代码控制更加警惕。如果您的机器断电,您将丢失所有未版本化的更改。当您关闭机器时,某些 RAMdrives 会将自己保存到磁盘中,这一事实稍微减轻了一些影响,但您仍然会丢失上次结帐或上次关闭时的所有内容。

此外,您必须为软件付费。但是,既然您正在为硬盘买单,也许这没什么大不了的。

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

于 2008-12-15T21:03:16.470 回答