On 2011-08-27 18:11-0700 Daniel Verkamp wrote:
On Sat, Aug 27, 2011 at 5:22 PM, Alan W. Irwin irwin@beluga.phys.uvic.ca wrote: [...]
bash.exe-3.1$ which echo /z/home/wine/newstart1/MinGW/msys/1.0/bin/echo.exe
bash.exe-3.1$ time echo "hello" hello
real 0m0.000s user 0m0.000s sys 0m0.000s
This shows there is at least one command (echo) available under wine that executes with essentially zero latency. So the problem cannot be the time wine takes to read the executable file (/z/home/wine/newstart1/MinGW/msys/1.0/bin/echo.exe in this case). But the rest of the commands I tried had latencies near 1 second. (I only report the second run in each case to make sure as much as possible is cached in memory for maximum speed.)
Aside from any actual slowdown, this test is not accurate - echo is a shell builtin. Try timing running the actual echo executable (with full path) rather than just "echo" (which will run the builtin).
You are absolutely right.
bash.exe-3.1$ time /z/home/wine/newstart1/MinGW/msys/1.0/bin/echo.exe hello hello
real 0m0.503s user 0m0.080s sys 0m0.020s
Also, I tried time (x; x; x; x; x; x; x; x; x; x), where "x" represents the complete echo command above, and the result was
real 0m5.281s user 0m0.800s sys 0m0.200s
In other words, it is the executable echo command that has the latency, not the built-in "time" command or built-in echo command. I have done some other time tests on MSYS bash built-ins such as test, and they were essentially instantaneous as well while the executable versions were slow (~0.5 seconds like above).
Does this difference between built-in and executable latency give a clue about what the issue is?
To move to a slightly different topic, after reviewing my previous notes about the 0.150 second latency of commands for 1.2-rc3 (the last time I checked this), it appears that I tested latency a different way, e.g.,
wine@raven> time wine MinGW/bin/mingw32-make.exe --version GNU Make 3.82 Built for i386-pc-mingw32 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
real 0m0.405s user 0m0.080s sys 0m0.040s
A half second is a huge amount of computer time. This time does not appear to be due to wine setup since if you misspell the executable name you get fast results:
wine@raven> time wine MinGW/bin/mingw32-make.exe1 --version wine: cannot find 'MinGW/bin/mingw32-make.exe1'
real 0m0.006s user 0m0.000s sys 0m0.008s
This style of latency check corresponds to the cmake "MinGW Makefiles" generator approach which builds with pure MinGW commands without using MSYS at all so these sorts of latency checks are still relevant to the fundamental question of reducing overall latency of CMake builds on wine. My notes imply the above correctly spelled command took only 0.150 seconds for 1.2-rc3 which implies a factor of 3 regression in latency for wine 1.3.27. However, for those old tests my MinGW/MSYS software stack was different so I will attempt to replicate them again (and also the bash timing versions above) with the only change being wine-1.2 versus wine-1.3.27. I will also, just for kicks, try wine-bash (a much older bash version that started as a port of bash to NT) timing tests as well for the two wine versions.
While I am doing those additional investigations, please consider the question of why there is a huge difference between built-in and executable latency for MSYS bash commands under wine. To start that investigation it would be good to compare the wine results for those two cases with the Windows results for those two cases. (I assume the two time results for built-in versus executable will be fairly similar in the Windows case, but that assumption needs to be checked.) I don't have access to Windows myself. Anybody up for doing that simple test and reporting the results back here? The automatic MinGW/MSYS installer at http://sourceforge.net/projects/mingw/files/Automated MinGW Installer/mingw-get-inst/ makes it easy to install the relevant MinGW/MSYS software on both wine and Windows.
Alan __________________________ Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________
Linux-powered Science __________________________