[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