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 <millerhe...@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-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