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
--
http://mail.python.org/mailman/listinfo/python-list