On 11 Feb 2013, at 13:56, Fabian Keil <freebsd-lis...@fabiankeil.de> wrote:

> real    350m42.363s
> user    253m5.477s
> sys     50m0.024s

These numbers look a bit wrong.  You've got 300 minutes of CPU time, but 350 
minutes of real time.  In an ideal world, on your dual-core system you'd see 
150 minutes of real time.  Seeing more than 300 implies that you're spending a 
lot of time waiting for I/O.  The normal recommendation is to use -j x where x 
is 1.5 times the number of cores, or 1x the number of GBs of RAM, whichever is 
smaller.  With only 2GB of RAM you might have linking problems with -j3, but 
it's still worth trying.

One of the more serious problems with our current build system is that it 
doesn't scale well to large numbers of cores.  On a 32-core system, with -j64, 
we're very rarely managing to have even 8 things able to run in parallel.  This 
should be addressed when the bmake import is fully integrated and we can use 
meta mode for better dependency tracking.  

Ninja has a concept of pools, so you can say 'only run one link job at a time, 
but you can do two C++ compile jobs or 4 C compile jobs', and it might be 
interesting to look at adding something similar to bmake, as this can improve 
scalability a lot.

David

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to