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-boun...@cmake.org] On Behalf Of Steven Stallion
Sent: Tuesday, April 05, 2016 11:19 PM
To: cmake@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
-- 

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

Reply via email to