[CMake] slow CMake performance configuring builds on remote SMB servers

Philip Lowman philip at yhbt.com
Fri Mar 23 02:45:04 EST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bill Hoffman wrote:
> Philip Lowman wrote:
>> We have somewhat of a large CMake project consisting of about 25
>> libraries.  Configuring on Linux over NFS is a snap taking only a few
>> seconds.  Configuring on a local C:\ for the Windows build is also
>> very fast only taking a few seconds.
>>
>> When we go to configure a build on a remote file server (using either
>> Samba or Windows XP File Sharing) we notice a dramatic slowdown in
>> performance.  Suddenly, initial configuration and generation of VCproj
>> files takes about 2-3 minutes as opposed to about 20 seconds with the
>> hard drive.  If I nuke CMakeCache.txt and reconfigure from scratch it
>> takes about the same amount of time which seems to indicate that there
>> is _no_ SMB file caching going on.
>>
>> Part of me thinks this is just a flaw with Windows XP but I'm having a
>> hard time believing that it's really this bad.
>>
>> I was wondering if anyone could report on their experiences
>> configuring a build with source and binary directories located on a
>> remote file server with Windows XP?
>>
> Is it mostly sending time in try-compile stuff?  If so, it might be
> possible that we could add some sort of cmake temp directory that was
> not under the build tree to run try-compile tests in.  Then that could
> be set to a local disk.   Once you have run CMake the first time, is it
> fast after that?

That's the weird thing, it definitely is slow during the initial
compilation tests but after everything has been configured for the first
time even when I click "configure" again (and I have changed no cache
variables) it still takes about a minute to finish and about another 30
seconds after I click "generate" to write out the 25 or so VCproj files.

Does CMake do anything weird during it's configuration phase like write
out temporary files?  Laying aside the initial compile checks which may
be occuring on the network drive (but if so, could be optimized to occur
in temp space on the C: ) what other file writes does CMake do prior to
generating the Makefiles?

- --
Philip Lowman
Simulation Development Engineer, Modeling and Simulation Technology
General Dynamics Land Systems
http://www.gdls.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGA4WAe0tOktX6RKkRApcWAJ9SGzkGKROvPy9tERrYWCDcySBFgwCfWLTl
BQGkldg/Q/MXWhqD/M44h38=
=gwsE
-----END PGP SIGNATURE-----


More information about the CMake mailing list