And Here I Thought buildworld/makeworld Was IO Bound
Warren Block
wblock at wonkity.com
Mon Feb 10 15:03:57 UTC 2014
On Sun, 9 Feb 2014, Tim Daneliuk wrote:
> For some years now, I have been doing nightly builds of -STABLE
> on an old Pentium D machine with 2G of memory. Buildworld + 2
> different kernels was taking in the neighborhood of 3 1/2 hours or so
> to run.
>
> I then upgraded the Mobo/CPU to a Haswell Quadcore I5-4570 and, sure
> enough, the build time for all the above came down to 30-35 mins or so.
>
> "So", says I, "I'll bet a faster drive would help considering all the
> scribbling to the disk the compilers and makes do". So, I upgdared to
> a Kingston SSD Now 300, 120G hard drive and he time to do the above
> went down to .... wait, it's still about 30-35 mins ????
>
> So, I've tried fiddling with different values for -j on the make
> command line to little avail. Well, -j8 and -j16 show no real
> difference here.
>
> So is the bounding function here actually CPU not IO? Am I missing
> something?
Yes, it mostly is CPU. Make sure you are running powerd on that i5, it
enables turbo mode and gives a noticeable speed increase.
Also, consider using -DNO_CLEAN, leaving all the untouched object files
in place for make to find and skip. I've seen buildworld times under a
minute with that on my i5 and SSD. There are downsides (uname is not
always updated correctly), but removing /usr/obj every so often and
starting from scratch will fix that.
More information about the freebsd-stable
mailing list