Hardware environment for compilation performance

This is a fairly general question.

Which hardware setup is best for large C / C ++ compilations like Linux kernel or applications?

I remember reading Joel Spolsky's post about experimenting with solid state drives and the like.

Do I need to have more CPU power or more RAM or a fast IO solution for a hard drive like a solid state? Would it be convenient, for example, to have a "normal" hard drive for a standard system and then use solid state to compile? Or can I just buy a lot of RAM? And how important is the CPU, or does it just sit around most of the compile time?

This may be a stupid question, but I don't have much experience in this area, thanks for the answers.

Here's info about the SSD issue

+2


source to share


2 answers


I think you need everything. The CPU is very important and compilations can be easily parallelized (with make -j

), so you need as many CPU cores as possible. Then RAM is probably just as important as it provides more "workspace" for the compiler and allows IO to be buffered. Finally, of course, the drive speed is probably the least important of the tri-core code, great, but not that great.



+2


source


Definitely not a stupid question, a properly configured build environment set up correctly will make a lot of headaches go away.

Hard drive performance is likely to top the list. I would steer clear of the solid state drive as they are only designed for high write and limited write and the make-clean-build loop will clog it.



More importantly, whether you can use a parallel or shared build environment - out of memory, ClearCase and Perforce had mechanisms to handle shared assemblies. If you don't have a parallel build system, having multiple processors would be pretty pointless

Last but not least, I would doubt build time will be the limiting factor - rather, you should focus on the needs of your test system. Before you look at real metal, try to design a build testing system that matches how you will actually work - how often your builds, how many people are involved, how big is your test system ...

+2


source







All Articles