This is the mail archive of the
mailing list for the Cygwin project.
RE: Simple bash script is slow to execute - appears to be time spent starting commands like ls
- From: "David Tazartes" <davidt81 at earthlink dot net>
- To: <cygwin at cygwin dot com>
- Date: Thu, 3 Sep 2009 11:05:23 -0400
- Subject: RE: Simple bash script is slow to execute - appears to be time spent starting commands like ls
Larry Adams wrote:
The problem as I see it is Windows. For example, only 10 iterations
caused over 65k file and registry reads. I have attached the output
from SysInternals Process Explorer for your edification. The only fix
for this is Linux. I still use Windows for development and "LOVE"
Cygwin. But Windows can't be fixed.
Wow, this is quite a trace and by far the most helpful post in the entire
Cygwin mailing list about this issue. I've looked it over and one of the
basic problems seems to be the "Application Compatibility" stuff that Vista
helpfully adds and won't let you disable. However, from the rest of the
trace it appears hopeless that a Windows process will ever run in 5 ms like
on Linux even if Application Compatibility were disabled. Windows seems to
just have a different model - small programs aren't how you do things, you
do them with API calls, which is why Windows Scripting Host's programming
model talks to the OS directly.
Another issue seems to be DLL loading - there seem to be a lot of DLL loads
in the trace.
So given that, I wonder if our intrepid Cygwin maintainers could be
convinced to write a kind of compiled bridge that allows for any command in
/bin to also be run in-process with bash.exe using static linking. I can
imagine all kinds of weird things one would have to worry about, like piping
data between processes, forks, etc, but it would conceivably make Cygwin
100x faster on Windows. (Perhaps *any* /bin command is too stringent a
requirement - but the 100 most common ones would be a good start.) I'll
freely admit that I don't have the time, knowledge or inclination to
contribute such a thing, but does anyone else have any interest in doing so?
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple