Speed/latency issues for development in a Wine environment

Paul Chitescu paulc at voip.null.ro
Fri Jun 18 02:48:03 CDT 2010


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 at 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 at raven> time wine lxxxx
> wine: cannot find L"C:\\windows\\system32\\lxxxx.exe"
> 
> real    0m0.011s
> user    0m0.004s
> sys     0m0.008s
> 
> wine at 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




More information about the wine-devel mailing list