[cmake-developers] CMake 3.5 generation time
Brad King
brad.king at kitware.com
Fri Feb 5 10:16:58 EST 2016
On 02/05/2016 09:10 AM, Bartosz Kosiorek wrote:
> Finally I was able to finalize git bisect.
> Generally without regression time was: real3m44.070s
> first bad commit: [0c97d32f7a592a768d614c19b3fd48eab245a2c4] cmGlobalGenerator: Remove direct storage of target
> time increased to real 6m36.929s (second clean run real 6m12.635s)
> https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0c97d32f
>
> In our project we have exactly 3287 targets, because we have
> flavored builds (in many cases one source code is build in
> three variants, depending on map type)
Thanks. That commit was part of a larger refactoring topic:
Merge topic 'use-generator-target'
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1e8c920d
and so cannot be simply reverted without a lot of other changes.
It looks like these methods:
cmGlobalGenerator::FindTargetImpl
cmGlobalGenerator::FindGeneratorTargetImpl
cmGlobalGenerator::FindImportedTargetImpl
are all now using linear searches instead of algorithmically
efficient data structures like before. These lookups are done
a lot.
Steve, IIUC you made this change as part of refactoring to
separate configure-time and generate-time structures. We need
to fix this to make the lookups efficient again. Where should
we store the needed data structures now?
Thanks,
-Brad
More information about the cmake-developers
mailing list