Thanks for the replies

You can see configure times on our dashboard (switch to advanced view): 
https://dash.orfeo-toolbox.org/index.php?project=OTB
It ranges from 1-3min. There's even one windows machine that's at 4m30s.

Thanks for the tip about Ninja generator, it's indeed much faster. But 
switching the entire dev team + CI servers from make to ninja is not really an 
option for us right now because of a bug in ninja that affects our SuperBuild 
configuration (see here if you're interested in the details: 
https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/issues/1625)


Victor Poughon

De : Eric Noulard <eric.noul...@gmail.com>
Envoyé : mercredi 14 novembre 2018 11:12
À : Poughon Victor <victor.poug...@cnes.fr>
Cc : CMake Mailinglist <cmake@cmake.org>
Objet : Re: [CMake] Tips on reducing configure time

Hi Victor,
Le mer. 14 nov. 2018 à 10:20, Poughon Victor 
<victor.poug...@cnes.fr<mailto:victor.poug...@cnes.fr>> a écrit :
Hi all

I am working on a large C++ project using CMake 
(https://www.orfeo-toolbox.org/) and our 'configure' step takes quite a lot of 
time. This can be annoying for developers working on features where the 
configure step needs to be re-run, or for CI in general.

Could you give us a clue on "takes quite a lot of time"?
Are we speaking of tens of seconds, minutes etc... ?


We have looked into it a bit and it seems like one issue is that the 
configure/generate steps do a lot of small files I/O. Specifically, using:

    inotofy-wait -mr <build_dir>

shows that "cmake ." causes about 150K file access/modify, etc. There are some 
especially guilty looking files like 'Makefile2.tmp' or 'progress.tmp' that 
appear thousands of times in most of the log file.

I have an SSD which somewhat helps, but for colleagues still on mechanical 
drives this is especially painful. Is there a way to disable writing all those 
files to the disk?

Any other tips on optimizing the performance of 'cmake .'?

Did you try to test drive a switch to ninja generator ?
Ninja generator generates only two files (build.ninja and rules.ninja) you 
won't have the "mny small files issue".
You can have long configuration times as well but not coming from file access.




Thanks,

Victor Poughon


--

Powered by www.kitware.com<http://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:
https://cmake.org/mailman/listinfo/cmake


--
Eric
-- 

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:
https://cmake.org/mailman/listinfo/cmake

Reply via email to