On Sat, May 31, 2014 at 15:17:59 +0200, Stephen Kelly wrote: > Here is a dump of some notes I have accumulated regarding compile features. <snip>
I haven't read this thoroughly, just enough to see that this item is missing: 9) Performance I'm seeing considerable performance impact of this feature, even when it isn't used: [ Snipping out slower runs (of 3); full file available. All runs were made with CMP0053 set to NEW, so configure times are mainly due to the new parser improvements. ] Running cmake build 3.0.0rc6 from cmake-3.0.0rc6... Running tests for paraview... Running make test 1... XXXXXX Timing of configure: 29.782 XXXXXX Timing of generate: 19.9902 Running ninja test 2... XXXXXX Timing of configure: 29.4229 XXXXXX Timing of generate: 37.4056 Running tests for vtk... Running make test 1... XXXXXX Timing of configure: 14.0793 XXXXXX Timing of generate: 8.14633 Running ninja test 1... XXXXXX Timing of configure: 13.9817 XXXXXX Timing of generate: 12.9389 Running tests for slicer... Running make test 2... XXXXXX Timing of configure: 9.77397 XXXXXX Timing of generate: 31.0064 Running ninja test 2... XXXXXX Timing of configure: 9.91163 XXXXXX Timing of generate: 40.8335 Running tests for sprokit... Running make test 3... XXXXXX Timing of configure: 2.9694 XXXXXX Timing of generate: 2.87538 Running ninja test 1... XXXXXX Timing of configure: 3.01635 XXXXXX Timing of generate: 0.572799 versus: Running cmake build master from cmake-master... Running tests for paraview... Running make test 3... XXXXXX Timing of configure: 21.5985 XXXXXX Timing of generate: 35.5566 Running ninja test 2... XXXXXX Timing of configure: 22.0632 XXXXXX Timing of generate: 59.1115 Running tests for vtk... Running make test 3... XXXXXX Timing of configure: 11.2056 XXXXXX Timing of generate: 10.4012 Running ninja test 3... XXXXXX Timing of configure: 10.8211 XXXXXX Timing of generate: 14.5732 Running tests for slicer... Running make test 3... XXXXXX Timing of configure: 7.48876 XXXXXX Timing of generate: 52.8917 Running ninja test 1... XXXXXX Timing of configure: 7.31795 XXXXXX Timing of generate: 62.4773 Running tests for sprokit... Running make test 2... XXXXXX Timing of configure: 3.28055 XXXXXX Timing of generate: 3.44212 Running ninja test 2... XXXXXX Timing of configure: 3.32206 XXXXXX Timing of generate: 1.22392 with my performance branches on master: Running cmake build merge from cmake-merge... Running tests for paraview... Running make test 3... XXXXXX Timing of configure: 19.9036 XXXXXX Timing of generate: 30.26 Running ninja test 1... XXXXXX Timing of configure: 19.1339 XXXXXX Timing of generate: 27.0993 Running tests for vtk... Running make test 2... XXXXXX Timing of configure: 8.63752 XXXXXX Timing of generate: 9.45069 Running ninja test 3... XXXXXX Timing of configure: 8.81416 XXXXXX Timing of generate: 7.74161 Running tests for slicer... Running make test 2... XXXXXX Timing of configure: 6.75249 XXXXXX Timing of generate: 44.8809 Running ninja test 2... XXXXXX Timing of configure: 6.58756 XXXXXX Timing of generate: 38.2476 Running tests for sprokit... Running make test 2... XXXXXX Timing of configure: 1.7703 XXXXXX Timing of generate: 2.57902 Running ninja test 3... XXXXXX Timing of configure: 1.81398 XXXXXX Timing of generate: 0.441557 Which shows that my branches help ninja quite a bit (which makes sense since that's been my focus so far), but now make is showing regressions (which ninja probably shares) which were not helped nearly as much. Looking at callgrind output[1], I'd say that compile features are a non-trivial amount (10% of /total/ time; same as compile options) of the added time especially considering that the projects aren't using compile features at all. Thanks, --Ben [1]The code run was next + my branches. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers