[CMake] cmake script profiler

Volo Zyko volo.zyko at gmail.com
Wed Apr 24 17:32:08 EDT 2013


Hi Jean-Christophe,

Thanks for the suggestion. We'll definitely consider it.

-- 
 Volo Zyko

On Thu, Apr 25, 2013 at 12:23 AM, Jean-Christophe Fillion-Robin <
jchris.fillionr at kitware.com> wrote:

> Hi Volo,
>
> If you are doing some topological sorting to build your library/executable
> in the right order. Instead of using CMake based solution, you could may be
> rely on a C++ approach ? This is what we are doing in CTK. We are using a
> small prog named ctkDependencyGraph that we build at configure time.
> See [1-4]
>
> [1]
> http://www.commontk.org/index.php/Documentation/BuildSystem_Description
> [2] https://github.com/commontk/CTK/blob/master/CMakeLists.txt#L691-717
> [3]
> https://github.com/commontk/CTK/blob/master/CMake/ctkFunctionGenerateDGraphInput.cmake
> [4]
> https://github.com/commontk/CTK/blob/master/CMake/ctkMacroValidateBuildOptions.cmake#L127-150
>
>
>
> On Wed, Apr 24, 2013 at 5:13 PM, Volo Zyko <volo.zyko at gmail.com> wrote:
>
>> 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. :(
>>
>> And here is where I put my script:
>> https://code.google.com/p/cmake-profile-stats/ Comments are welcome.
>>
>> 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.
>>
>> --
>>  Volo Zyko
>>
>> On Wed, Apr 24, 2013 at 10:14 PM, Bill Hoffman <bill.hoffman at kitware.com>wrote:
>>
>>> On 4/24/2013 3:07 PM, Volo Zyko wrote:
>>>
>>>> Hi,
>>>>
>>>> We use Makefiles on Linux and MacOS. Windows is not our target platform.
>>>> From what we see Linux is the fastest. We made few attempts of building
>>>> our project on Windows in VS but it was very-very slow and definitely
>>>> cmake generates too many project files for VS. For us it was 500+
>>>> projects in a workspace which is too much for Visual Studio. :(
>>>>
>>> Chances are you have too many high level targets in your project.  What
>>> types of targets do you have?  Are they all executables and libraries or
>>> are you using custom targets to do something?   That might be a source of
>>> your performance issues as well.
>>>
>>> -Bill
>>>
>>>
>>> --
>>> Bill Hoffman
>>> Kitware, Inc.
>>> 28 Corporate Drive
>>> Clifton Park, NY 12065
>>> bill.hoffman at kitware.com
>>> http://www.kitware.com
>>> 518 881-4905 (Direct)
>>> 518 371-3971 x105
>>> Fax (518) 371-4573
>>>
>>> --
>>>
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at http://www.kitware.com/**
>>> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>>>
>>> Please keep messages on-topic and check the CMake FAQ at:
>>> http://www.cmake.org/Wiki/**CMake_FAQ<http://www.cmake.org/Wiki/CMake_FAQ>
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.cmake.org/mailman/**listinfo/cmake<http://www.cmake.org/mailman/listinfo/cmake>
>>>
>>
>>
>> --
>>
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/listinfo/cmake
>>
>
>
>
> --
> +1 919 869 8849
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130425/b0f5e142/attachment.htm>


More information about the CMake mailing list