This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: fork and exec (was: Re: Proposed patch to system.XWinrc)


On Wed, Jul 01, 2009 at 05:32:14PM +0200, Vincent R. wrote:
>On Wed, 1 Jul 2009 11:11:56 -0400, Christopher Faylor
><cgf-use-the-mailinglist-please@cygwin.com> wrote:
>> On Wed, Jul 01, 2009 at 06:55:35AM +0100, Andy Koppe wrote:
>>>2009/6/23 Christopher Faylor:
>>>>>If posix_spawn() ever gets implemented in Cygwin to
>>>>>avoid the slowness of fork(), /bin/sh might well change to the first
>>>>>shell that supports it.
>>>>
>>>> It's really somewhat of an urban myth about Cygwin's fork being slow.
>>>> Cygwin's exec is also pretty slow. ??I'm not really sure that
>>>> posix_spawn
>>>> would cause any kind of performance improvement.
>>>
>>>Ah, right. So is it Windows' CreateProcess() itself that's slow? Or is
>>>it some of the additional stuff that exec() needs to deal with?
>>>Signals? The hidden console?
>> 
>> The majority of the exec code is in spawn.cc - spawn_guts().  You can
>> see for yourself that this is not a simple function.
>> 
>> Just remember that neither fork nor exec have native Windows analogues.
> 
>About that I wanted to make some benchmark with strace and give you
>figures about cygwin running on Windows 7 64 bits and Windows XP 32
>bits.Unfortunately I have only installed natively Windows 7 and I did
>my test in a Virtual machine but I got some weirds figures where it was
>also very slow on XP.  If some people have Windows XP and windows vista
>(32 or 64 bits) on the same machine it could be interesting to provide
>some benchmarks.
>
>and when I say benchmark I want exactly the same machine running the
>same cygwin version or it won't be very relevant.

No one is asking for benchmarks! However, if we were, strace is
particularly unsuitable for that task.  If you want to see improvements
happen then dive into the code and offer specific suggestions.

cgf

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]