On Friday 18 June 2010 03:05:08 am Alan W. Irwin wrote:
On 2010-06-17 17:07-0400 Mike Kaplinskiy wrote:
On Thu, Jun 17, 2010 at 4:35 PM, Alan W. Irwin
The issue is that Wine builds of software take roughly a factor of 5
longer
than the equivalent Linux builds. This issue appears to be caused mostly
by
command startup latency. [...] I find the command startup latency depends very much on what X server I
am
using. Of course, the actual commands I am using (cmake, MinGW make,
MinGW
gcc, etc.) to build software under wine have nothing to do with X. So I
am
hoping if I build a stripped down version of wine configured to ignore X
and
all other systems (sound, etc.) that are not required for builds, then I might achieve the reduced command startup latency that I need.
Before I try that, however, is there some less brute-force way to reduce command startup latency?
To make sure your numbers are somewhat consistent, you might want to do `wineserver -p; wine notepad` before tests to make sure the wineserver is loaded. It should help with timing of a single app startup, but probably won't help in the cmake case.
I don't think I have access to notepad, but I assume that was just your template for any wine app I am timing. I agree timing results depend strongly on what has been previously cached in memory so the startup latency timing tests, I report e.g.,
wine@raven> time wine gcc --version gcc.exe (GCC) 4.5.0 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
real 0m0.143s user 0m0.088s sys 0m0.020s
wine@raven> time wine lxxxx wine: cannot find L"C:\windows\system32\lxxxx.exe"
real 0m0.011s user 0m0.004s sys 0m0.008s
wine@raven> time gcc --version gcc (Debian 4.3.2-1.1) 4.3.2 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
real 0m0.001s user 0m0.000s sys 0m0.004s
are all quoted for the second run of the command with "wineserver -p" running and with "export WINEDEBUG='all'" set. That typical difference between ~150 ms startup latency on wine versus ~1 ms startup latency on Linux is what I need to reduce in order to obtain reasonable build speeds on Wine.
Ideas?
Alan __________________________ Alan W. Irwin
Alan,
Try to keep the wineserver initialized and running - for example keep a cmd.exe or notepad or something idle (in the same WINEPREFIX).
To get more accurate timings run the test twice so the 2nd time the files should be cached in memory.
If you are _sure_ you don't need a GUI you can unset DISPLAY (or run in a pure text console) so wine won't be able to create any windows. But the fact the X server matters suggests that some GUI components are used after all.
Also please verify how fast gcc is to start on Windows, it may not be a wine problem. On Windows it is typically more expensive to start processes so Windows programs are usually more complex, do more tasks (eventually multithreaded) and live longer than the average UNIX program.
Paul