[CMake] Performance issues on very large project

Steven Stallion sstallion at gmail.com
Wed Apr 6 09:59:39 EDT 2016


It turns out the problem was due to scoping. The module in question
was only being included by subdirectories, but not the top-level
listfile (I'm sure you can see where this is going).

Switching the include guard to make use of a property rather than a
variable took care of the problem nicely - we're back to 55s.

Thanks for the responses!

Steve

On Wed, Apr 6, 2016 at 8:38 AM, Miller Henry <MillerHenry at johndeere.com> wrote:
> I found the same thing a few years ago, and my solution was the same: only include those modules once.  I find that my sub cmake modules are much cleaner now as a bonus.
>
> I tend to blame the time not on file IO, but on time to parse those files.  I've never done actual profiling though.
>
> -----Original Message-----
> From: CMake [mailto:cmake-bounces at cmake.org] On Behalf Of Steven Stallion
> Sent: Tuesday, April 05, 2016 11:19 PM
> To: cmake at cmake.org
> Subject: [CMake] Performance issues on very large project
>
> All,
>
> I am currently working on a very large project that contains over 500 (yes, really) listfiles. A co-worker was looking into some performance issues we were seeing during configuration and found something very interesting. Currently configuration is taking 1m57s across several configurations using Mac OS X as a host and the latest .dmg from cmake.org (3.5.1).
>
> We have a core module that provides a number of helper functions and macros (completely stateless) that is included by most of this listfiles (nearly 400 of them). We found that an include guard was missing, after adding that configuration now clocks in at 1m30s.
>
> Taking things a step further, we removed includes of the module, and simply included it once in the top-level listfile. Configuration then dropped to about 55s.
>
> The results above seem to indicate a possible file I/O bottleneck.
> This is very surprising to me - these builds are being run on recent core-i7's with SSDs. Is anyone else on the list dealing with large projects or similar configuration issues?
>
> TIA,
>
> Steve
> --
>
> 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/mailman/listinfo/cmake


More information about the CMake mailing list