Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

CreateProcessA() on Windows is very slow. A significant portion of the perceived speedup for development tasks is that fork() takes on the order of microseconds, but creating a Windows process takes ~50ms, sometimes several times that if DEP is enabled. This is VERY painful if you try to use fork-based multiprocessing programs directly.


I recently converted a large SVN repository to Git using git-svn.

Started on Windows. After five days it failed for some reason so I had to rerun it (forgot an author or along those lines, trivial fix). Meanwhile I looked into why it was so slow, and saw git-svn spun up perl commands like crazy.

Decided to spin up a Linux VM. After fixing the trivial issue it completed in literally a couple of hours.


Some people use WSL as an epicycle to fix this.


Interesting, I wonder why DEP would degrade process creation performance. My understanding is it's just a flag in page table entries to forbid execution, I am not sure how this could impact performance so much (except that data and code now have to be mapped separately).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: