我有关于Visual C# 2008的硬数据。简单来说,你最好花钱买更快的CPU而不是更快的I/O。接下来是更详细的回答...
我们的C#(.NET 3.5)解决方案包含81个项目,超过2M行代码(包括注释和空白行)。几年前,我们从标准硬盘的Pentium 4 3GHz PC升级到带有10000转Western Digital Raptor硬盘(74GB)的Core 2 Duo 2.6GHz PC上。速度提升非常大。从10分钟缩短到了3.5分钟。这全部是在Windows XP Pro 32位环境下,配备4GB内存。
我们还购买了一块Gigabyte i-RAM(可以通过谷歌获取信息),它基本上是一块具有电池备份的RAM硬盘。不像SSD读取速度很快但写入速度较慢,i-RAM对于读和写都很快,但是如果停电,电池只能持续大约12小时,因此您必须严格控制您的提交。与10000 RPM Raptor HDD相比,在Core 2 Dou平台上,这将缩短编译时间另外一分钟(缩短到2.5分钟)。
后来我发现,那些旧的74GB 10000 RPM Raptor驱动器比普通的7200RPM现代驱动器略慢,并且我们已经通过持续基准测试证明了这一点。我们尚未尝试过新的Velociraptors,但它们肯定会更快,但仅仅为了编译时间而言可能不值得去购买。
上周,我们获得了一个新的Intel Core i7-870平台,带有G.Skill Falcon 128GB SSD(采用Indilix Barefoot控制器),并配备标准的500GB硬盘作为第二个驱动器。我还把i-RAM扔到这台电脑上,测试了所有配置。
与 Core 2 Duo 相比,i7-870 在 SSD、HDD 和 i-RAM 上编译的时间为1分40秒左右,而 HDD 和 i-RAM 分别需要3.5分钟和2.5分钟左右。因此,我们升级开发人员工作站时,在 C# 编译时间方面,性能的绝大部分提高来自于更快的 CPU 而不是更快的磁盘。如果你想加速编译时间,那么把钱投入到 CPU 而不是磁盘上。话虽如此,SSD 加载 Visual Studio 和打开解决方案要快得多(尽管我没有这方面的计时数据)。如果你买得起一个 SSD,你永远不会回头,因为你电脑上的每个程序都会加载得更快,简直难以置信。但是它不会显著加快您的编译速度。这还是在 Visual Studio C# 是单线程的情况下。如果微软真的能够让其 IDE 中的编译器支持多线程,那么我们就可以真正利用那四个核心了...
2022年5月更新:我们现在又升级了PC,基于之前的经验,我们专注于CPU性能。新的PC配备有Intel Core i7-2600k CPU超频到4.6 GHz,带有Intel 510系列120 GB SATA III SSD,16 GB RAM和一个大的CPU散热器!令人惊讶的是,这将编译时间几乎减半了,我肯定归因于 CPU 计算能力的非常大提高,而不是更快的 SSD。在 Visual Studio 2010 中进行 C# 编译的性能结果如下:
- 159秒:Intel Core i7-870(2.9 - 3.3 GHz),4 GB RAM,带有 SATA II SSD。
- 109秒:Intel Core i7-2600k(3.4 - 3.8 GHz)16 GB RAM,带有 SATA III SSD。
- 84秒:Intel Core i7-2600k 超频(4.63 GHz),16 GB RAM,带有 SATA III SSD。