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

Clinton Stimpson clinton at elemtech.com
Tue Mar 25 14:51:08 EDT 2008


Bill Hoffman wrote:
> 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.
>

I was getting better numbers than that with parallel builds (is that 
expected?).
A plain make was a touch faster, and make pqCore was almost 2x as fast.

Clint



More information about the CMake mailing list