[cmake-developers] Profile Cmake scripts

Dimitar Yordanov domidimi at gmail.com
Sun Dec 27 13:40:27 EST 2015


Hi all,

I was searching for a way to profile CMake scripts in order to find
bottlenecks and possibilities to improve performance. I found out that
someone already invested time on that [1] providing a minimal solution. The
idea behind it is to use the cmake "--trace" option and to output a time
stamp and a stack depth with each executed command. The trace log is
afterwards used by a Python script, which transforms it into a more
readable format.

In [1] there existed already a patch for CMake 2.8. This can be easily
adapted for CMake 3.4. One of the issues with that approach is that the
add_subdirectory() command creates a new stack and thus starts the depth
count back from one again. I think it would be more appropriate to work
around that in the Python script, which does the processing. A time stamp
at the end of the whole execution would also be needed in order to
calculate the time needed for the last command.

Alternatively, the trace could output a time stamp at the beginning and at
the end of each command. But that would produce larger traces.

So, I would like to ask you for your opinion and if there is willingness to
integrate such a patch in CMake.

For the Python script itself I thought that it would maybe make sense to
create an output in the Callgrind format. No idea if it is possible
though.

1 - https://github.com/volo-zyko/cmake-profile-stats

Regards,
Dimitar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20151227/0a4c5062/attachment.html>


More information about the cmake-developers mailing list