tags:

views:

202

answers:

2

When I use MSYS to compile something, the ./configure step can take longer than the make. However, the same process in Linux has a fast configure and slow make. Is this just some setting in MSYS that is bogging down my system? Does anyone have a solution?

+4  A: 

Typical configure scripts do a lot of starting small subprocesses. On Unix-like operating systems, this is done with the fork() and exec() function calls, which have very particular semantics that need to be preserved (for example, copy-on-write shared memory after forking). On Windows, subprocesses are created with CreateProcess() which has very different semantics (eg. completely separate memory space from the parent). In order to execute Unix-like scripts and programs correctly, MSYS needs to do a lot of emulation work to make creating new processes on Windows work like fork()/exec() on Unix. This ends up being slower than an OS that offers those function calls natively.

Greg Hewgill
A: 

You may also want to turn off any virus scanners you have running. They will re-scan an executable every time it is loaded, which absolutely kills script performance.

Even if you don't have anti-virus running, don't forget about Windows Defender. (You may also want to disable User Account Control, though I don't know what impact that has on program load time.)

Mike Hobbs