Several weeks ago, I was compiling Firefox and stumbled accross the magic that is make -j. The -j n flag tells make to run n processes at once, and if you leave n out, it runs as many as it can. Now, I compiled Firefox with make -j and it went along just fine - super ultra fast on my new Athlon64 X2 system. In my moment of happiness, I aliased make to make -j, so I wouldn't need to remember about this great trick in the future. So tonight I go to compile Gnash, the GNU Flash replacement (which sucks, BTW) and I configure it and type make, expecting it to go along its merry way. Which it does, for a while. Then my computer completely hangs up, the console tells me it's killing processes because I have no memory left and I'm going After rebooting, I go to compile again, and sure enough, it slows right down again. So I kill it and try again while running top in another window. 320 processes Kill the compile and it goes down to 140. Turned it down to make -j 8 and all went well. So, lesson: make -j really will run as many processes as it can. And my computer doesn't like 150 instances of g++ running at once.