Answers:
Scott Gu还发布了有关影响构建速度的因素,主要指出了I / O资源(例如硬盘)。
我发现最大的不同因素不是物理因素,而是软件因素:您安装了哪种防病毒软件?
一些防病毒产品不能很好地处理软件开发-他们看到所有这些应用程序文件都被重写,怀疑存在误操作并每次都重新扫描每个文件。
(有关更多信息,请参见/programming/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129。)
另一方面,如果您想提高现有计算机的性能,那么最好的方法就是充分利用可用内存来快速赢得胜利。
这是Scott Hanselman所做的一些不错的研究,涉及将多个CPU用于MSBUild。提速非常引人注目。
编辑:但是,我应该注意,为了拥有使用Visual Studio的良好体验,您需要大量RAM。:)
我在一个相当大的C ++代码库中的亲身经历:
处理器: Pentium 4 HT 3.06 GHz
内存: 1 GB DDR RAM(PC 2100,所以333 MHz)
磁盘: 7200 RPM硬盘驱动器(如果有内存,则为UDMA 100)
编译时间:50分钟
处理器:酷睿i7 720QM(8个逻辑处理器)在1.6 GHz的,涡轮增压至1.73千兆赫,当所有核活动
内存: 8 GB DDR3 RAM在1066 MHz的
磁盘: 7200转硬盘(SATA 2)
编译时间:4分钟(用/ MP)
结论:即使在相对较低的时钟速度下,处理器越多越好。SSD可以进一步改善时间,但是从对编译消息的观察来看,我怀疑它可以将其缩短30秒钟左右。
对于构建C ++程序而言,首先要考虑的因素是结构性的-如果源代码高度垂直地结构化,它将对构建时间(尤其是增量构建)产生毁灭性影响。我在本地对项目的一些部分进行了重组,以在四核Xeon上进行显着改进。18个月后,即使在Core i7机器上,他们(项目的所有者)仍然无法匹配我的挂钟构建时间。
软件布局的效果(正面或负面)在团队的每个成员及其执行的每个构建中成倍增加。
Xoreax IncrediBuild是一个分布式构建系统,在我工作的编译时间上有了很大的改进。(不幸的是,链接时间仍然很长,特别是使用整个程序优化和链接时代码生成的发行版本,但这是可以预期的。)