Remix.run Logo
ok123456 4 days ago

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.

magicalhippo 4 days ago | parent | next [-]

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.

ok123456 4 days ago | parent [-]

Some people use WSL as an epicycle to fix this.

Krssst 4 days ago | parent | prev [-]

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).