[CMake] Performance issues on very large project

Miller Henry MillerHenry at JohnDeere.com
Wed Apr 6 09:38:59 EDT 2016


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