<div dir="ltr">Volo,<div><br></div><div style>Thanks for sharing your cmake-profile-stats tool... I found it very useful. With this tool and about ~10 minutes of tweaking, my configure phase runs ~4x faster! </div><div style>
<br></div><div style>@Bill: I hope similar profiling features will be included in a future release! </div><div style><br></div><div style>Cheers,</div><div style>Kyle</div><div><br></div><div style>PS: I added a small extension to your script to print a cumulative summary of time spent in each function. This helped me find the hotspots quickly. I posted the modified script here: <a href="https://code.google.com/p/cmake-profile-stats/issues/detail?id=1">https://code.google.com/p/cmake-profile-stats/issues/detail?id=1</a></div>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 24, 2013 at 9:13 PM, Volo Zyko <span dir="ltr"><<a href="mailto:volo.zyko@gmail.com" target="_blank">volo.zyko@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">We have executables and libraries and a lot of custom targets (the project is organized so that we export headers during the build - not the best idea in the world). However, I finished (more or less) the script for building time stats from the cmake's trace and we (with my colleague) found the slowest part. In our cmake scripts we have a bunch of sub-projects which produce libraries and also we have an utility function with which we define dependencies between those sub-projects. Then we define executables and build a list of libraries in a right order (from more dependent to less dependent) using sub-project's dependencies. This list is necessary for linking the executables. So, it appears that the slowest part is the function that builds the list of libraries. Basically there is nothing wrong with that cmake function, it just intensively works with strings. :(<div>
<div class="gmail_extra"><br></div><div class="gmail_extra">And here is where I put my script: <a href="https://code.google.com/p/cmake-profile-stats/" target="_blank">https://code.google.com/p/cmake-profile-stats/</a> Comments are welcome.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Also it looks like there are few bugs in the trace functionality of cmake; especially how callstack changes when cmake process foreach and if/else calls. I just didn't investigate them and I cannot provide more details. Sorry.</div>
<span class="HOEnZb"><font color="#888888">
</font></span><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br>-- <br><div class="gmail_quote"> Volo Zyko</div></font></span><div><div class="h5"><div class="gmail_quote"><br></div><div class="gmail_quote">
On Wed, Apr 24, 2013 at 10:14 PM, Bill Hoffman <span dir="ltr"><<a href="mailto:bill.hoffman@kitware.com" target="_blank">bill.hoffman@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>On 4/24/2013 3:07 PM, Volo Zyko wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hi,<br>
<br>
We use Makefiles on Linux and MacOS. Windows is not our target platform.<br>