[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