编译性能的硬件环境

问题描述 投票:0回答:2

这是一个相当普遍的问题..

什么硬件设置最适合大型 C/C++ 编译作业,例如 Linux 内核或应用程序?

我记得读过 Joel Spolsky 发表的一篇关于固态磁盘和类似内容实验的文章。

我是否必须拥有更多的 CPU 能力或更多的 RAM 或快速硬盘 IO 解决方案(例如固态硬盘)?例如,为标准系统配备一个“普通”硬盘,然后使用固态硬盘进行编译是否方便?或者我可以买很多内存吗? CPU 有多重要,或者它只是占据了大部分编译时间?

可能这是一个愚蠢的问题,但我在该领域没有很多经验,谢谢您的回答。

这里有一些关于SSD问题的信息

performance compilation hardware
2个回答
2
投票

我认为你需要的一切都足够了。 CPU 非常重要,并且编译可以轻松并行化(使用

make -j
),因此您需要尽可能多的 CPU 核心。然后,RAM 可能同样重要,因为它为编译器提供了更多“工作空间”并且 允许缓冲 IO。最后,当然,驱动器速度可能是三者中最不重要的 - 内核代码很大,但不是那么大。


2
投票

硬盘性能可能位居榜首。我会远离固态硬盘,因为它们仅适用于大量但有限数量的写入操作,并且 make-clean-build 周期会对其造成影响。

更重要的是,您能否利用并行或共享构建环境 - 从记忆中 ClearCase 和 Perforce 都有处理共享构建的机制。除非您有并行构建系统,否则拥有多个 CPU 将毫无意义

最后但并非最不重要的一点是,我怀疑构建时间是否会成为限制因素 - 更有可能的是,您应该关注测试系统的需求。不过,在查看实际的金属之前,请尝试设计一个适合您实际工作方式的构建测试系统 - 您的构建频率、参与的人数、您的测试系统有多大......

© www.soinside.com 2019 - 2024. All rights reserved.