[CMake] Obtaining improved GNU make performance on Makefiles generated by cmake

Bill Hoffman bill.hoffman at kitware.com
Mon Mar 24 07:46:09 EDT 2008


Alan W. Irwin wrote:

> Hi Bill:
> 
> Plplot now builds for the cvs version of CMake so I am finally in a 
> position
> to continue this thread.
> 
> Here is the 2.4.8 latency for the current version of PLplot
> 
> software at raven> time make >& /dev/null
> real    0m1.454s
> user    0m0.800s
> sys     0m0.724s
> 
> By repeating this command, I get variations of typically 0.01 seconds in 
> this
> result.  (I also confirmed the command did not actually build anything new,
> i.e. it is a true measure of Makefile latency.)
> 
> For cmake version 2.7-20080320 (that cvs update done after the above 
> commit)
> the latency has been increased (by 60 per cent) to
> 
> real    0m2.319s
> user    0m1.356s
> sys     0m1.068s
> 
> Again, I confirmed it was a true measure of the Makefile latency.
> 
> I also did some tests with the -r option for GNU make.
> 
> For 2.4.8 the latency is reduced by a factor of 1.5 to
> 
> software at raven> time make -r >& /dev/null
> 
> real    0m0.970s
> user    0m0.636s
> sys     0m0.568s
> 
> That would indicate there is a lot to be gained by the .PHONY target for
> the non-file rules in generated GNU Makefiles.
> 
> For the cvs version of CMake the latency is reduced hardly at all by
> the -r option
> 
> software at raven> time make -r >& /dev/null
> 
> real    0m2.287s
> user    0m1.324s
> sys     0m0.964s
> 
> In sum, the current result for the cvs version of cmake seems to create
> builds with significantly increased latency compared to 2.4.8.  The -r
> option greatly increases this disparity.  I think this is an important
> enough result that further tests of "make" latency for other software
> projects are important to confirm these results.
> 
> Question for Alex Nuendorf:
> 
> Alex, I imagine the KDE latency is much larger than PLplot's since your
> build has _a lot_ more dependencies to check.  Are the current KDE 
> builds in
> good enough shape so that repeat make commands measure true Makefile 
> latency
> rather than some issue with unneeded compilation, linking, or whatever?  If
> so, I would be very interested in your latency results for cmake-2.4.8
> versus the cvs version of CMake.
> 

Something is odd here.  I don't think that much changed in the structure 
of the makefiles from 2.4.8 to CVS.  Did you build your CVS CMake 
release or debug?  What if you do make -d, is it actually checking lots 
of extra stuff?  Can you compare make -d in CVS and 2.4.8?

-Bill


More information about the CMake mailing list