On 2010-06-20 11:16+1000 Jeff Zaroyko wrote:

On Sun, Jun 20, 2010 at 12:50 AM, Alan W. Irwin
<ir...@beluga.phys.uvic.ca> wrote:
Thanks very much Jeff, for providing some independent timing numbers for
startup latency which are an order of magnitude (!) smaller than mine.
So what is different about our wine platforms to cause that huge
difference?  More below.

On 2010-06-19 12:55+1000 Jeff Zaroyko wrote:


Windows:
$ time gcc --version
gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 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.020s
user    0m0.000s
sys     0m0.015s

Wine:
je...@genera:~$ WINEPREFIX=/home/jeffz/wine-cpbench time
~/git/wine/wine "c:\mingw\bin\gcc" "--version"
gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 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.

0.00user 0.01system 0:00.02elapsed 66%CPU (0avgtext+0avgdata
0maxresident)k
0inputs+0outputs (0major+1567minor)pagefaults 0swaps

So to the level of your measurement precision you are consistently getting
20 ms elapsed time for both Windows and Wine for the gcc --version
experiment on boxes very similar to mine.  For the same experiment (I went
out of my way to use the same syntax you did) I am getting ~150 ms for one X
server and ~300 ms for the other.  So that is an order of magnitude
difference in our results.  When I can reduce my wine application startup
latency to 20 ms, I will be a happy camper, but the question is how can
I do that?

One difference between us is I am using MinGW-4.5.0-1, but it is hard to
believe that the time taken to process the --version option for that has
changed so drastically from your gcc-3.4.5.  Also, I believe the startup
latency on my platform is a general problem on my platform
and nothing to do with gcc.  I
get essentially identical startup latency results with "mingw32-make
--version" and "gcc --version".  "cmake --version" tends to be about 10 per
cent longer than the other two.  Presumeably you have convenient access to
mingw32-make. Do you also get only ~20 ms startup latency for that?

Wine 1.2-rc3:
je...@genera:~$ WINEPREFIX=/home/jeffz/wine-cpbench time
~/git/wine/wine "c:\mingw\bin\mingw32-make.exe" "--version"
GNU Make 3.81
Copyright (C) 2006  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.

This program built for i386-pc-mingw32
0.09user 0.02system 0:00.14elapsed 81%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+8432minor)pagefaults 0swaps

Windows:
$ time mingw32-make.exe --version
GNU Make 3.81
Copyright (C) 2006  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.

This program built for i386-pc-mingw32

real    0m0.030s
user    0m0.015s
sys     0m0.000s

So for mingw32-make our wine startup latencies are essentially identical
(near 150 ms) and substantially worse than the Windows numbers (30 ms) and
much worse than the Linux numbers (~1 ms).  "make" startup latency matters
for builds configured by CMake because typically the top-level Makefile
is configured in a way to run make many times per
build.

"cmake" startup latency also matters a lot because special modes for it are
used during the build (typically two times per object file that is compiled
by gcc) to figure out dependencies, keep track of progress, etc. If you are
game for one more download (from
http://cmake.org/cmake/resources/software.html) what are your cmake
--version startup latency numbers?

Of course, the gcc startup latency matters as well (for builds made with
lots of different source files), but perhaps our numbers vary there because
of our different MinGW gcc versions. If you are interested in trying the
MinGW 4.5.0-1 compiler, it and its dependencies are available from
http://sourceforge.net/projects/mingw/files/MinGW/BaseSystem.

The other thing that bothers me is I get the same identical result whether
wineserver is active or not.  Can you confirm that for your wine timing
experiment or is that an unusual result?

I am still interested in that question.


Other data here that may be relevant to the comparison with you:

My hardware is 64-bit.

Linux raven 2.6.26-2-amd64 #1 SMP Wed May 12 18:03:14 UTC 2010 x86_64
GNU/Linux

Likewise, but an older kernel:
Linux genera 2.6.22-15-generic #1 SMP Fri Jul 11 18:56:36 UTC 2008
x86_64 GNU/Linux
X.Org X Server 1.4.0.90
8GB of ram, 6GB of swap.

2GB ram, 6GB swap here.


I am running 32-bit wine (wine-1.2-rc3 compiled with the -O3 option for
Debian Lenny) which uses the following libraries:

ir...@raven> ldd /home/software/wine/install/bin/wine
       linux-gate.so.1 =>  (0xf77a2000)
       libwine.so.1 => /home/software/wine/install/bin/../lib/libwine.so.1
(0xf765d000)
       libpthread.so.0 => /lib32/libpthread.so.0 (0xf7625000)
       libc.so.6 => /lib32/libc.so.6 (0xf74d3000)
       libdl.so.2 => /lib32/libdl.so.2 (0xf74ce000)
       /lib/ld-linux.so.2 (0xf77a3000)

Ubuntu 8.04
I've compiled from git with the default -O2.

I'm running wine from the source directory as you may have noticed.
je...@genera:~$ ldd git/wine/loader/wine
        linux-gate.so.1 =>  (0xffffe000)
        libwine.so.1 => /home/jeffz/git/wine/loader/../libs/wine/libwine.so.1
(0xf7deb000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf7dd2000)
        libc.so.6 => /lib32/libc.so.6 (0xf7c83000)
        libdl.so.2 => /lib32/libdl.so.2 (0xf7c7f000)
        /lib/ld-linux.so.2 (0xf7f2d000)


Previously, I got ~50 per cent larger startup latency numbers with the
Debian Lenny package for wine-1.1.42 provided by WineHQ which is why I
switched to to building my own wine-1.2-rc3, but 150 ms with the latter just
doesn't cut it compared to your 20 ms.

Are you still compiling with -O3 here?

Yes.  I will try -O2 also just to match as closely as possible to you,
but I think that is a reach.

In sum, you do have one rather large startup latency for mingw32-make that
agrees with mine and which confirms the problem in that case and a much
shorter startup latency for an old version of MinGW compared to mine.  So
the results are currently ambiguous, but we will find out more if you are
willing to do the appropriate downloads of CMake and modern MinGW gcc.

Thanks for your continuing help in narrowing down the factor(s) that are
killing performance for CMake-based builds under Wine.

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); PLplot scientific plotting software
package (plplot.org); 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
__________________________


Reply via email to