开发者

hardware environment for compilation performance

This is a rather general question ..

What hardware setup is best for large C/C++ compile jobs, like a Linux kernel or Applications ?

I remember reading a post by Joel Spolsky on experiments with solid state disks and stuff like that.

Do I have to have rather more CPU power or more RAM or a fast harddisk IO solution like solid state ? Would it for example be convenient to have a 'normal' harddisk for the standard system and then use a solid state for the compilation ? Or can I just buy lots of RAM ? And how important is the CPU, or is it just sitting around most of the compile time ?

Probably it's a stupid question, but I dont have a lot of experience on that field, thanks for answers.

Here's some info on the SSD issue

  • Linus Torvalds on the topic
  • How to get the most out of it (Standard settings are sort of slowing it down)
  • Interesting article on Coding Hor开发者_JS百科ror about it and with a tip for a payable Chipset


I think you need enough of everything. CPU is very important, and compiles can easily be parallelised (with make -j), so you want as many CPU cores as possible. Then, RAM is probably just as important, since it provides more 'working space' for the compiler and allows to your IO to be buffered. Finally, of course drive speed is probably the least important of the three - kernel code is big, but not that big.


Definitely not a stupid question, getting the build-test environment tuned correctly will make a lot of headaches go away.

Hard disk performance would probably top the list. I'd stay well away from the solid state drive as they're only rated for a large-but-limited number of write operations and make-clean-build cycles will hammer it.

More importantly, can you take advantage of a parallel or shared build environment - from memory ClearCase and Perforce had mechanisms to handle shared builds. Unless you have a parallelising build system, having multiple CPUs will be fairly pointless

Last but not least, I would doubt that the build time would be the limiting factor - more likely you should focus on the needs of your test system. Before you look at the actual metal though, try to design a build-test system that's appropriate to how you'll actually be working - how often are your builds, how many people are involved, how big is your test system ....

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜