SSD驱动器和Visual Studio IDE。大改进?真实使用案例,无理论

92

我希望通过使用Windows 7 + Intel SSD硬盘来加快我的Visual Studio 2008开发周期。

我想要加速的几个方面是:

  • 编译/构建时间
  • 打开WinForms/WebForms文件
  • 针对Windows和Web的Visual Studio“笨重”

我不关心Visual Studio的启动时间。而且每GB成本也不是问题。我想要速度。

是否有人已经尝试过这种(SSD驱动器+Visual Studio),你可以告诉我加速和降低速度方面的情况吗?

我知道SSD的理论,但通常实践出真知。所以我对那些实际尝试并测试了使用SSD设置的Visual Studio的人感兴趣...


可能值得在serverfault.com上询问。有关详细信息,请参见http://blog.stackoverflow.com/2009/04/server-fault-private-beta-begins/。 - Matthew Murdoch
2
我认为这更多涉及编程,但我当然考虑过它。 但是我不想要基准测试,而是真正的VS2008体验。 - Julian de Wit
好的,我建议你也在那里问一下(尽管这可能会引发争论...!)。 - Matthew Murdoch
哇,发现一个比Server Fault更早的问题退出beta测试感觉很有趣。我正在寻找一些2016年的好处(VS本身就有80GB,我的未来128GB SSD可能无法同时安装Windows和VS...) - Paul Stelian
8个回答

81

我有关于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。

1
谢谢。太遗憾了,我已经订购了一台SSD怪兽电脑 :) 我也会在这里发布我的结果,但恐怕它们将是相同的结果。 - Julian de Wit
9
好的 - 我有很多需要更正的地方:首先 - 您没有提到您使用的SSD是什么。SSD驱动器直接连接到SATA2接口,而iRAM是SATA1(130MB / s)。除此之外,iRAM具有有限的控制器,这使得它失去了意义。如果您在RAID 0中使用了2个,您应该获得高达200MB / s的速度。我同意SSD不会改善编译时间,但我看到SSD可以在大约一秒钟内打开Visual Studio。最后,我认为iRAM不符合典型的SSD驱动器标准。您的结果是误导性的,事实也是错误的。 - JL.
13
请阅读并思考后再进行输入翻译。首先,我确实提到了我使用的SSD,事实上它用BOLD标出。我知道iRAM具有SATA1接口,因此在读取方面比几乎所有新的SSD都要慢 - 我包括它是因为我有一个进行测试,并且它实际上对于写入和读取的速度是一样快的,而大多数SSD则不然。我没有测试过2个RAID,因为我只有1个!我还在最后一段提到SSD在加载VS方面要快得多。因此所有事实都是正确的,你也同意结果,但你说它们是误导性的?有趣... - Ben Robbins
1
@BenRobbins 你有在 Visual Studio 之外使用 /MP 标志对你的 C# 项目进行基准测试吗? - John Zabroski
编译时间为3.5分钟(硬盘)和2.5分钟(i-RAM)。我没有看到你保持所有其他因素相同,只是从HDD换成SSD的比较,这正是你进行测试以得出你所得出结论的适当方法。 - AaronLS
显示剩余9条评论

27

我刚刚购买了一台电脑,唯一的遗憾是没有早点购买固态硬盘。

编译时间之前已经还好,但现在整个IDE反应更加迅速。不仅是Visual Studio如此,其他应用程序也是如此。当整个系统运行速度如此之快时,保持流畅状态就变得轻松许多。


4
几个月过去了,我依然有同样的感受。整个电脑使用体验变得更好了。 - Julian de Wit

11

作为测试,我们刚刚订购了一款90 GB基于Sandforce的SSD,以查看它是否能够帮助我们构建时间。我们有一个大型的C++项目,在一个老旧的Xeon 3.4 GHz机器上进行完整重构需要21分钟。

在每个测试上运行三次后,构建时间差异微不足道;只快了约30秒。

我们更新(!)的Xeon 5150机器(配备硬盘)在约11分钟内重构相同的项目,这表明编译确实是CPU受限制。

(这让我感到惊讶,因为我认为SSD的惊人的4k和512k读写性能将在构建中非常有益。)


11

经过长时间的性能测试,我找到了最佳的设置方案,但是适用于C++编译器。你会需要:

  • Windows系统和 Program Files(通常是C:驱动器)上的SSD
  • 1 TB WD Caviar Black 硬盘分成两个区:
    • D 驱动器:在起始磁柱处只有一个 TEMP 文件夹的小硬盘空间(最大35 GB)。你应该将 TMP 和 TEMP 环境变量映射到 D:\TEMP(这一点非常重要!)
    • E 驱动器:用于一般数据存储,除了软件开发之外的所有内容。
  • 1 TB WD Caviar Black 硬盘,可以按任意分区布局将Visual Studio 2008项目/解决方案存储在其中。基于Subversion使用,我最终选择使用四个分区:
    • 820 GB 用于主干和一般目的的项目
    • 60 GB 用于 "功能分支"
    • 60 GB 用于在产品稳定期间使用的 "稳定分支"
    • 60 GB 用于已批准软件上的小修补程序所使用的 "产品质量分支"。
  • 6核或8核处理器,使用 /MP 编译器开关(不要与Visual Studio 2008本机“并行项目构建”功能混淆,我不知道为什么AMD Phenon II处理器在这种组合下工作得如此出色)
  • Windows 7 64位操作系统 (即使使用32位编译器,我也不太确定为什么在64位操作系统中运行速度更快)
  • SATA 3 兼容主板

这个设置方案胜过我测试过的任何其他组合。

一个巨大的模块化项目典型的编译结果如下:

  • 没有 /MP 并且使用普通硬盘进行并行构建:约12:00分钟
  • 这个提议的设置方案:4:30分钟
  • 这个设置方案,但使用 WD Caviar Green 硬盘交替使用:每个硬盘多+1:00分钟(两个硬盘为5:30或6:30)
  • 将 TEMP 分区移动到 RAMDRIVE 上:5:30分钟

我的结论如下:

  • 不要让TEMP文件夹运行在SSD上,因为它们的写入速度较慢,并且没有WD Caviar Black硬盘内置的可比拟的64 MB缓存。
  • 使用专用的硬盘作为TEMP盘,可以让两个WD硬盘并行工作:TEMP盘用于保存cl.exe的临时文件,而项目硬盘则用于存储*.cpp/h、*.obj、*.lib、*.exe等文件。
  • WD Caviar Black的缓存算法非常出色,在SATA 6 GB/s的条件下,性能超过了我测试过的RAMDRIVE设置的TEMP驱动器。
  • 分区减少了编译环境中无法避免的碎片化对性能的影响;同样适用于TEMP驱动器。

希望我能帮到你。


1
忘了说,SATA模式应该是AHCI模式。 - Mathias A. Gruber
1
我不确定TEMP文件夹部分。你为什么说SSD是“坏写入器”?关于它们的缓存大小,通常大于64MB(Vertex 4带有512MB DRAM缓存,更大的驱动器可达1GB)。而且你的坏RAMDRIVE经历真的很奇怪。它有多大?你的交换文件在哪里?你确定它没有被交换到磁盘上吗?平均DDR2 RAM的带宽是SATA 6GB的10倍,更不用说Windows本身对于磁盘写入进行了RAM缓存。而且这还不是你所谈论的RAID。 - vgru

5

1
嗨,谢谢。但我认为这篇文章是关于他们自己的编译器,而不是VS 2008。 - Julian de Wit

5

我刚刚升级了一台笔记本电脑的SSD,通过克隆原始的5400 RPM硬盘进行(这是一个惊人的无痛过程)。 我用秒表捕捉了升级前和升级后的度量值。(戴尔Inspiron 1525,3 GB内存,Windows Vista 32位)

Windows启动/启动

63秒 --> 52秒

加载我的ASP.NET Visual Studio解决方案

换句话说,从单击.sln文件到Visual Studio完全加载并可以开始编码的时间。 在测量之前,我做了一次,因为第一次比后续次数需要更长的时间。

16秒 --> 8秒。

调试

F5到主页完全加载。

5秒 --> 3.5秒


1
你只通过从 5400rpm 到 SSD 把启动时间减少了 21% 吗?你应该能够获得更大的好处。也许你的笔记本电脑内存不足? - Brian Kendig
@Bria Kendig 谢谢,我可能会尝试一下。我目前有3GB,所以最多只能升级到4GB。 - James Lawruk
我有一块关键的固态硬盘,我的Win7从完全关闭到启动只需要15秒钟。 - tunafish24
你是如何在戴尔Inspiron笔记本电脑上将硬盘更换为固态硬盘的? - Karthik Nishanth
我从亚马逊购买了克隆软件和小螺丝刀。http://www.lawruk.com/blog/40/cloned-laptop-hard-drive-to-an-crucial-ssd - James Lawruk

4

当我购买新电脑时,不确定是什么让我的使用体验更快。

然而,我的一个同事将一块7200 RPM硬盘更换为SSD后,Visual Studio(特别是启动/调试ASP.NET)立即快了至少两倍


2
我也一直在考虑这个问题,一段时间前我买了一个快速的SD卡,可以插入笔记本电脑中并忘记它的存在,这样Windows Vista就可以使用ReadyBoost功能。这感觉确实有所改善,但肯定不足以为了这个而购买SSD硬盘。
后来我在进行Subversion更新时遇到了问题,决定放弃ReadyBoost的想法,并将SD卡挂载到一个挂载点上,在那里创建了所有我的项目文件。SD卡不是很大(1GB),但它确实减少了我的构建等待时间,并使调试更加快速。
大部分都是主观的,我正在回答一个需要事实的问题,但我只能说“我感觉这样”和“我感觉那样”。由于我尝试从不同的驱动器运行Visual Studio文件,我确信它会有所不同,但具体差别有多大以及我愿意为此支付多少钱,这也是我急切寻找答案的问题。我的笔记本可以再加一个硬盘,但我还没有决定是要买一个SDD还是一个7200 RPM的笔记本硬盘。

1
嗨,谢谢。 我从7200转换到10,000的速龙龙,结果差不多。它感觉有点快,但并没有突破性的变化。 我希望SSD是革命性的。 - Julian de Wit
1
我想澄清一下,迅猛龙不是固态硬盘。 - Brett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接