I am doing a build on a Linux machine with ubuntu 10.04 on it. I want to know how can I really speed up my build. I have 4 CPUs and lots of RAM. I already reniced the process group to -20. Is there something else I can do?
Most software build processes use
Reniceing the process group to -20 is a bad idea. This niceness level should be used only by the top-priority system-critical tasks. Otherwise you can loose responsiveness or even freeze the system. And the potential compilation-time benefit would be marginal.
Apart from what Caleb already suggested, if you compile a lot, you can also speed up builds using compiler cache or distribute the build tasks across multiple computers across a network using distcc or icecream.
Adding to rozcietrzewiacz's answer:
First big improvement would be the disks, use faster IOPs disks, i.e. something that runs at 10,000 or 15,000 rpm, ideally SSD and then you are only limited by your purse.
Random example, Samsung's 6Gbps SATA 2 SSD:
OCZ have some of the most extreme hardware, 500,000 IOPs:
You could try copying the tree to a
For rapid development usage the build would go faster if you disabled all the optimisations. These tend to be '90s era tweaks when processors were slow, it's pretty much all about IO now.
The most convoluted approach I can imagine is using