[cmake-developers] CMake master slowdown in generation step
Brad King
brad.king at kitware.com
Tue Apr 8 14:42:33 EDT 2014
On 04/05/2014 07:08 AM, Stephen Kelly wrote:
> I agree of course that the performance is master currently is not
> acceptable.
>
> Re-cmake with v2.8.12.2:
> $ time cmake ..
> real 0m0.712s
> user 0m0.692s
> sys 0m0.020s
[snip]
> Re-cmake with optimize-source-file-processing:
> $ time cmake ..
> real 0m0.733s
> user 0m0.689s
> sys 0m0.046s
Do you have timings for running CMake on KDE?
I've merged optimize-source-file-processing to master. However,
generation is still significantly slower on some projects. For
example, I ran CMake on VTK master as of commit ce692f85 (with
no options). On a warm cache with CMake built in "Release" config
and using the default Unix Makefiles generator:
* Before the source file refactoring, CMake built from
commit 1d4366ff (Merge topic 'revise-compiler-id-policies'):
real 0m16.551s
user 0m14.908s
sys 0m1.192s
real 0m16.171s
user 0m14.676s
sys 0m1.076s
* After the source file refactoring, CMake built from
commit 5376151a (Merge topic 'target-transitive-sources'):
real 0m58.518s
user 0m52.632s
sys 0m5.144s
real 0m57.808s
user 0m51.948s
sys 0m5.288s
* After optimize-source-file-processing, CMake built from
commit 7f7d6a40 (Merge topic 'optimize-source-file-processing'):
real 0m40.353s
user 0m34.556s
sys 0m5.100s
real 0m39.837s
user 0m34.288s
sys 0m4.956s
The "Configuring done" line prints after about 12 seconds.
Therefore generation is still at least 6x slower.
The "correct first, optimize later" strategy is reasonable
for new features, but in this case everyone pays the time
cost whether using the new features or not. The "optimize
later" time has to be very soon, please. I would like to
see the run time for the above case to be back down to 17s
or better.
We like to maintain an invariant that 'master' is always
release-ready. The current performance is not acceptable,
so 'master' is not currently release-ready. I plan to merge
no more features to 'master' until this is resolved. If it
is not resolved soon, I will revert the changes from 'master'
to make it release-ready again. Then the target SOURCES
features can be restored after implementing with acceptable
performance.
Thanks,
-Brad
More information about the cmake-developers
mailing list