Idea for removing the GIL...

Stefan Behnel stefan_ml at behnel.de
Tue Feb 8 12:05:33 EST 2011


Roy Smith, 08.02.2011 17:52:
> Robert Kern wrote:
>
>> Unlike a UNIX fork, CreateProcess() does not have the same copy-on-write
>> semantics for initializing the memory of the new process. If you want to pass
>> data to the children, the data must be pickled and sent across the process
>> boundary. He's not saying that multiprocessing isn't useful at all on
>> Windows, just less useful for the scenarios he is considering here.
>
> Amen, brother!  I used to work on a project that had a build system
> which was very fork() intensive (lots of little perl and shell scripts
> driven by make).  A full system build on a linux box took 30-60 minutes.
> Building the same code on windows/cygwin took about 12 hours.  Identical
> hardware (8-core, 16 gig Dell server, or something like that).
>
> As far as we could tell, it was entirely due to how bad Windows was at
> process creation.

Unlikely. Since you mention cygwin, it was likely due to the heavy lifting 
cygwin does in order to emulate fork() on Windows.

http://www.cygwin.com/faq/faq-nochunks.html#faq.api.fork

Stefan




More information about the Python-list mailing list