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, 1 Jul 2009 12:06:22 -0400, Christopher Faylor
<cgf-use-the-mailinglist-please@cygwin.com> wrote:
> 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

I did but maybe it would be important to know for sure that the problem
comes from fork and
exec because I think you are sharing the same code with mingw and it runs a
lot faster with it.
So before I dive :

1) I want to be sure that fork/exec are the reason
2) See the differences with mingw.

I don't think there lots of different ways of implementing that two
functions




--
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]