[CMake] Status/use of CMake on Cygwin

Kenneth Boyd zaimoni at zaimoni.com
Tue May 21 12:14:09 EDT 2013


On 5/20/2013 3:32 PM, Alan W. Irwin wrote:
> On 2013-05-20 11:52-0500 Kenneth Boyd wrote:
>
>>> Can somebody with access to MSYS bash.exe on Microsoft Windows verify
>>> that startup latency by timing "--version" options for standard
>>> commands such as cmake?  If such times on a normal PC are hundreds of
>>> milliseconds than you have confirmed the issue, but if they are only a
>>> few milliseconds (8 on Linux, for example, for my entry level PC
>>> hardware), then you have shown the issue doesn't exist for Microsoft
>>> Windows which would contradict the above inefficient fork explanation.
>
>> sh-3.1$ time gcc --version
>> gcc.exe (4.3.3-tdm-1-dw2 mingw32) 4.3.3-dw2
>> Copyright (C) 2008 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions. There 
>> is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
>> PURPOSE.
>>
>>
>> real    0m0.028s
>> user    0m0.000s
>> sys     0m0.015s
>>
>> Kenneth
>
> Here are the corresponding (second-time) numbers here for Linux
> and Wine.
>
> software at raven> time gcc --version
> gcc (Debian 4.7.2-5) 4.7.2
> Copyright (C) 2012 Free Software Foundation, Inc.
> [...]
>
> real    0m0.002s
> user    0m0.000s
> sys     0m0.000s
>
> That 0.002 seconds is so small that is probably only reliable
> within a factor of two or so but indicates gcc --version
> has hardly any overhead at all on Linux.
>
> bash.exe-3.1$ time gcc --version
> gcc.exe (GCC) 4.7.0
> Copyright (C) 2012 Free Software Foundation, Inc.
> [...]
>
> real    0m0.176s
> user    0m0.000s
> sys     0m0.040s
>
> That is an ugly factor of 90 or so compared to the Linux result. Your
> own value is 14 times my Linux value but 1 sixth my MSYS/Wine value so
> it is hard to interpret it.  Do you have an equivalent result on your
> hardware for Linux?
No, I do not have a dual-boot Windows/Linux system on hand.  I suspect 
that a Fedora LiveCD boot for testing would not be comparable to a 
proper install (my experience has been that Fedora LiveCD Linux is 
visibly slower than a native Windows install, across multiple versions.)

The actual procedure I used was:
* launch bash from cmd.exe in Win7 on the primary machine.
* Verify command line: bash.exe-3.1$ gcc --version
* time it: bash.exe-3.1$ time gcc --version

So while not quite a second-time number, it does work around filesystem 
caching.

6x slower is not at all surprising to me, for a speed hit for emulating 
Windows.

Kenneth


More information about the CMake mailing list