[cmake-developers] Compiler features/extensions remaining/future issues

Ben Boeckel ben.boeckel at kitware.com
Sun Jun 8 18:56:11 EDT 2014


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.


More information about the cmake-developers mailing list