[CMake] Status/use of CMake on Cygwin

Alan W. Irwin irwin at beluga.phys.uvic.ca
Mon May 20 14:54:19 EDT 2013


On 2013-05-20 11:50+0200 marco atzeri wrote:

> Il 5/20/2013 11:01 AM, Alan W. Irwin ha scritto:
>> On 2013-05-20 07:51+0200 marco atzeri wrote:
>> 
>>> the slowness at startup on cywin is mainly due the fork
>>> implementation
>>> http://cygwin.com/faq/faq-nochunks.html#faq.api.fork
>>> 
>>> unfortunately windows makes a real fork implementation very inefficient.
>> 
>> Hi Marco:
>> 
>> Your explanation sounds reasonable since it appears all new processes
>> are started with fork, but do you have a reference for that conclusion
>> that gives more specifics? All the above URL says is that fork can be
>> "a little slow" on Cygwin with no timing specifics.
>
> "a littel slow" is an euphemism
>
> $ while (true); do date; done | uniq -c
>     11 Mon, May 20, 2013 11:38:10 AM
>     11 Mon, May 20, 2013 11:38:11 AM
>     11 Mon, May 20, 2013 11:38:12 AM
>     11 Mon, May 20, 2013 11:38:13 AM
>     11 Mon, May 20, 2013 11:38:14 AM
>     11 Mon, May 20, 2013 11:38:15 AM
>      8 Mon, May 20, 2013 11:38:16 AM
>      6 Mon, May 20, 2013 11:38:17 AM
>
> on Linux this is around 20-50 times faster.

That factor is in pretty good agreement with the factor of 25 I find
for "-version" tests, but my experience is the long commands in a
typical build/test mitigate the effect somewhat so the overall
build/test slowdown for MSYS (or Cygwin) compared to Linux is
typically a factor from two to four rather than a factor of 25. Thus,
it is still a fairly large inefficiency for builds/tests using MSYS
(and presumably Cygwin) but I don't view it as an MSYS showstopper
because such factors are not that bad (I could alwasy buy new hardware
if I get really bothered by it) and since the access to bash.exe and
other common GNU system commands that are in MSYS makes implementing
cross-platform tests _much_ easier for me.

>
> We also noted that Windows 64 bit platforms are slower than
> previously Windows 32 bit platforms
>
> see
> http://cygwin.com/ml/cygwin/2011-07/msg00354.html
> and similar on cygwin mailing list.

Thanks for pointing out that interesting thread.  Later in the thread
there was a patch introduced to make Cygwin on Windows 64 bit
platforms as efficient as for the 32-bit case (which, of course, is
not that good a standard of efficiency because of the fork situation).
It sounded like that patch was accepted.  All my own MSYS startup
latency timing results are for 32-bit Wine (on standard Intel x86-64
64-bit hardware).  At some point I am going to try 64-bit Wine to test
whether the startup latency is the same as the 32-bit Wine case.  I
expect it to be the same, but you never know until you try it.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list