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

Bill Hoffman bill.hoffman at kitware.com
Tue Mar 25 14:28:46 EDT 2008


Bill Hoffman wrote:

> 
> Sure, it will take some time to do this, as a build of paraview can take 
> some time, and I will have to do it twice.  However, with the single 
> target in ParaView case, I know when Brad made the change he saw 
> significant speed ups, but I do not have the numbers.
> 
OK, so the results are in for ParaView which has a total of 144 targets.


--- build all of paraview with nothing needing a build:

2.6
make  15.21s user 5.55s system 74% cpu 28.049 total
make  15.44s user 5.35s system 98% cpu 21.073 total

2.4
make  14.40s user 5.09s system 59% cpu 32.793 total
make  14.73s user 4.74s system 98% cpu 19.684 total
* There is a 5 second delay before seeing the first line
   of output from a 2.4 build tree on ParaView, no delay
   in 2.6

2.6 is less than a second slower, but perception is better because there 
is no delay without output.



--- build a target that only depends on only one other target.
( 2.6 is about 3 seconds faster in this case.)

2.6
silverymoon:paraview3-build-cmake26 make vtkCommon
[  0%] Built target vtksys
[100%] Built target vtkCommon
silverymoon:paraview3-build-cmake26 time make vtkCommon
[  0%] Built target vtksys
[100%] Built target vtkCommon
make vtkCommon  0.43s user 0.08s system 99% cpu 0.513 total
silverymoon:paraview3-build-cmake26 time make vtkCommon
[  0%] Built target vtksys
[100%] Built target vtkCommon
make vtkCommon  0.44s user 0.08s system 99% cpu 0.522 total
silverymoon:paraview3-build-cmake26 time make vtkCommon
[  0%] Built target vtksys
[100%] Built target vtkCommon
make vtkCommon  0.41s user 0.10s system 99% cpu 0.515 total

2.4
silverymoon:paraview3-build time make vtkCommon
[  0%] Built target vtksys
[100%] Built target vtkCommon
make vtkCommon  3.32s user 5.70s system 99% cpu 9.025 total
silverymoon:paraview3-build time make vtkCommon
[  0%] Built target vtksys
[100%] Built target vtkCommon
make vtkCommon  3.24s user 5.81s system 99% cpu 9.059 total


--- Build a target that depends on 60 other targets

2.6

make vtkPVServerManager  9.70s user 3.04s system 99% cpu 12.754 total
make vtkPVServerManager  9.64s user 2.91s system 99% cpu 12.569 total

2.4

make vtkPVServerManager  11.40s user 6.38s system 99% cpu 17.955 total
make vtkPVServerManager  11.19s user 6.58s system 99% cpu 17.774 total


In summary, I would say 2.6 or CVS is better.  We only loose less than a 
second out of 15 on the total, and we gain 2 or 3 on single targets.

-Bill




More information about the CMake mailing list