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? Thanks, P.S. Trying now with no -j arg on make invocation. -- ---------------------------------------------------------------------------- Tim Daneliuk tundra at tundraware.com PGP Key: http://www.tundraware.com/PGP/
Am 10/02/14 04:43, schrieb Tim Daneliuk:> 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? > > Thanks, > > P.S. Trying now with no -j arg on make invocation.Hi, the new machine has a lot more memory, I assume. The build probably will not even hit the disk due to caching. Also remember, the build process spawns probably millions of processes and that alone takes some time. And 30min sounds pretty great to me :D Best regards
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.
On Mon, Feb 10, 2014 at 3:43 AM, Tim Daneliuk <tundra at tundraware.com> 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? > > Thanks, > > P.S. Trying now with no -j arg on make invocation.Does poudriere buildworld on tmpfs if you have USE_TMPFS=all? That might give you an absolute baseline. I was astounded how fast poudriere builds ports, if you build ports from source and haven't switched your ports upgrade routine to build packages with poudriere, well, you're really missing out. Cheers Tom