我想构建一台可以快速运行 Visual Studio 的 PC。我有大约 30 个 C# 项目,其中包括 WCF 服务、IIS Web 服务。因此对我来说,快速意味着快速编辑、编译、运行和调试周期。
当我为自己的目的构建机器时,我应该如何平衡对 CPU 能力、内存和驱动技术的投资?
答案1
我们的开发团队使用速度非常快的硬件……截至 2010 年 1 月,每台开发机器的价格超过 6,000 美元。
任何组件给我们带来的最大变化(我们一次测试一件事)是添加真正快速的 I/O 并将我们所有的源代码放在该硬件上。我们经历了大约 10 种不同的配置(带有 VRaptors、SSD 等的各种 RAID),我们想到的最佳产品是 Fusion IO 的 IOXtreme 驱动器。
http://www.fusionio.com/products/ioxtreme/
您将需要大量的 RAM,因为驱动器上格式化的块大小越小,驱动程序“锁定”的 RAM 数量就越多。
这些坏家伙是非易失性的,随机读取和写入都超级快。就金钱而言,我们无法让我们的设备编译得更快。
我将快速进行编译以便给你一个想法......
好的,根据 Visual Studio Code Metrics 结果,我们的包含所有代码的主解决方案目前有 37 个项目,总共有 92,281 行“可执行”代码。使用 IDE 中的默认 C# 开发人员设置编译它(只需重新加载所有设置,以便您可以客观地与默认值进行比较)需要 22 秒。在 RAID 5 中有 3 个 Velociraptor 的相同机器上需要 29 秒,因此增加了约 24%。
该测试是使用 CLEAN SOLUTION 和 REBUILD SOLUTION 运行的,因此它应该是一次完整的编译。
我不知道你们所有人怎么样,但我经常在进行小到中等的更改后进行编译。平均每天大概 80-100 次。这意味着仅 IOXtreme 驱动器每天就为我节省了 9.3 分钟。以每小时 70 美元(我们的平均开发人员费率,大致如此)计算,每位开发人员每天可节省 10 美元。因此,这个东西大约需要 90 天才能收回成本。真的还不错……目前它们是免费的。
此外,我强烈认为编译时间不应该超过开发人员的分心阈值。让我等 2 分钟...在 Wiki、Google 或 Youtube 上浪费时间。这很难衡量。
好的,整个钻机看起来像这样:
Windows 7 Professional 12GB RAM 2x 四核 Xeon (E5504) @ 2.00 GHz。每台机器总共 8 GHz。Highpoint 2320 RAID 控制器服务器主板(我忘记型号了,抱歉)3x Velociraptor 组成 RAID 5,分为 C、D 和 E 盘。Windows 放在 C 盘,程序放在 D 盘,用户数据文件夹放在 E 盘。IO Xtreme 盘作为 F 盘。所有代码(我们的和第三方 DLL)都放在 F 盘。
祝大家好运!
答案2
这里有一个类似的问题:哪些 PC 组件对 Visual Studio 的编译时间影响最大。
在 Visual Studio 中进行构建时,最大的瓶颈是磁盘驱动器。从 Visual Studio 2008 开始,您还可以在构建过程中利用多个处理器或多个核心。如果是我,我会选择以下方法:
- Core I7 平台
- 6+ GB 内存
- Windows 7 64 位(比 Vista 更快)
- 快速固态硬盘
- 在构建期间没有运行任何主动的防病毒软件!
进一步阅读:
- Scott Gu 的博客:提示/技巧:硬盘速度和 Visual Studio 性能
- MSDN:使用多个处理器构建项目
- Adrian Kingsley-Hughes 在 ZDNet 上的博客:Windows 7 build 6956 性能测试
- Scott Hanselman 的博客:使用并行构建和多核 CPU 通过 MSBuild 实现更快的构建
- 原则技术:固态硬盘与硬盘驱动器 (pdf)
答案3
我使用 ramdrive,来自数据存储器。Visual Studio 不使用我所有的 PC 核心(8 核),所以我做的是格式化具有 NTFS 和激活压缩的 ramdrive。 源代码具有高压缩率,因此 2GB 的 RAM 驱动器至少可提供 4GB 的存储空间。您还可以激活 RAM 驱动器的自动保存!此方法可为您提供最快的 IO,甚至比 SSD 还快。但是您会注意到,当 IO 不是瓶颈时,VS 在使用多核方面非常差。