I got tired of waiting for wine to build, and started looking for ways to speed it up.
I have three systems handy: a dual 650MHz PIII, a 750MHz PIII laptop, and a 1.1 GHz Celeron with shared memory video (i.e. dog slow). To see if a parallel compile would help, I installed Red Hat 8.0 on all systems, and installed the RPM for distcc from http://distcc.samba.org.
I then timed how long it took to do a 'make' after 'make clean' in a recent copy of the wine tree.
It does look like distributing the load helps a tiny bit, but it's not clear it's a big win over just building on the dual 650MHz machine. The fastest build I've seen so far is 19 minutes. I'm pretty sure I'm not doing things optimally yet.
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125? - Dan
p.s. No fair using ccache! That's the next tool I want to investigate; it's probably the biggest win of all, at least for regression testing.
Dan Kegel wrote:
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
OK, got some numbers building 20021125 on my home machines:
30min : 750MHz PIII laptop 17min 21sec: dual 650MHz PIII, 7200RPM disks, make -j2 16min 1sec: distcc on the dual 650MHz as localhost, 750MHz laptop, and a 1.1GHz celeron, make -j4
And on another machine not at home: 8 min : dual 1.2GHz P4 Xeon, make -j2
So the fastest build I've seen so far (not including configure or make depend) is about 8 minutes.
distcc seems to help a tiny bit. it's kind of looking like I should get a faster motherboard if I want sub-ten-minute builds.
Next step should be to measure benefit of using ccache when searching through cvs for the patch that broke something, but I'll probably just go out and get a faster motherboard.
I want one with gigabit ethernet onboard; pricewatch says $320 for an Asus A7V8X with "2400" Athlon XP, $353 for an Asus P4PE with 2.4GHz P4. Hmm. I bet either one of those would get me Wine builds below ten minutes... Does anyone have a good recipe for building an inexpensive machine that can build Wine quickly? - Dan
Summary of wall clock time from clean "time make" for 20021125:
dk, gcc2.94, debian 3.0: 8 min : dual 1.4GHz P4 Xeon, 512 MB RAM, 256KB L2 cache each
dk, gcc3.2, red hat 8.0: 16min 1sec: distcc with dual 650MHz, 750MHz laptop, and a 1.1GHz celeron 17min 21sec: dual 650MHz PIII, 400 MB RAM, 256KB L2 cache each, 7200RPM disk 19min : 1.4GHz Athlon, 256 MB RAM, 256KB L2 cache 30min : 750MHz PIII laptop, 400 MB RAM
mf, ? 16m56s : 1.8 GHz P4
ms, ? 30min : 900MHz athlon, 512 MB RAM "much faster than this with ccache -- was going to buy new motherboard, now I'll wait"
bm, gcc2.95rh, red hat 7.3: 47m0s : 450MHz Celeron, 128MB
jm, gcc3.2 47m41s : 550MHz athlon, 192 MB Ram
tl, ?: 180m : 300MHz Pentium II, 96 MB RAM
am, ?
180m : 133MHz Pentium I, 64 MB RAM
My impressions -- * gcc2.9x is probably a fair bit faster than gcc3.2 * ccache is a win * distcc is only a win if you have several equally fast machines * athlons don't do quite as well as their clock speed would indicate * dual processors go twice as fast as single processors (imagine that)
Here are my timings for a 1.8 GHz P4:
time ./configure real 0m55.767s user 0m15.590s sys 0m14.530s
time make clean real 0m9.166s user 0m2.980s sys 0m2.270s
time make real 16m55.724s user 11m47.180s sys 1m2.460s
I wonder, if it's really necessary to change configure scripts and do a "configure/make clean all" that often as it's done right now.
The good thing about it is, that it shows how well Linux' mutlitasking does work compared to Windows. You can just let it build it in the background and do other things meanwhile. ;-)
On Sun, Dec 15, 2002 at 10:51:59PM -0800, Dan Kegel wrote:
It does look like distributing the load helps a tiny bit, but it's not clear it's a big win over just building on the dual 650MHz machine. The fastest build I've seen so far is 19 minutes. I'm pretty sure I'm not doing things optimally yet.
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
On a athlon 900 with 512 MB RAM it takes about 30 minutes for a full build, but only for the first run. On the second run it takes about 3-4 minutes :). Ok, i'm using ccache and it realy paid out during my -DSTRICT work. The cache hit rate had varied between 30% and 80%, depending what i've done. You get 30% - 40% hitrate for normal updates from cvs without doing a "make clean".
No fair using ccache! That's the next tool I want to investigate; it's probably the biggest win of all, at least for regression testing.
I've thought about buying a new computer before i started to use ccache. With ccache i'll wait for the Hammer.
bye michael
On Sun, 15 Dec 2002, Dan Kegel wrote:
I got tired of waiting for wine to build, and started looking for ways to speed it up.
Wine-20021125?
- Dan
Well, with a dual 1800+ MP system ( cvs from 20021216 ) takes real 6m49.808s user 12m0.330s done with make -j2
p.s. No fair using ccache! That's the next tool I want to investigate; it's probably the biggest win of all, at least for regression testing.
On Sun, Dec 15, 2002 at 10:51:59PM -0800, Dan Kegel wrote:
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
current cvs on an athlon 550 with 192 M Ram and gcc 3.2: real 47m40.902s user 40m25.200s sys 3m1.410s
Ciao Jörg -- Joerg Mayer jmayer@loplof.de I found out that "pro" means "instead of" (as in proconsul). Now I know what proactive means.
On December 15, 2002 10:51 pm, Dan Kegel wrote: snip
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
- Dan
(I was wondering if mine was the slowest!) real - 47m0.357 user-43m1.631 sys-2m51.668
Celeron 450 with 128MB running RedHat 7.3
snip
Bill Medland wrote:
On December 15, 2002 10:51 pm, Dan Kegel wrote: snip
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
- Dan
(I was wondering if mine was the slowest!) real - 47m0.357 user-43m1.631 sys-2m51.668
Celeron 450 with 128MB running RedHat 7.3
snip
No yours is fast compared to my <blush> 300mhz pentium with 96mb of ram (around 3 hours) </blush>
Nobody can beat my old Pentium 133 with 64 Mb.... it usually took more than 4 hours to just do a "make" after a refresh.... If you are really curious, I can time how long it takes to do a full build....
Alberto
At 20.12 16/12/2002 -0700, Tony Lambregts wrote:
Bill Medland wrote:
On December 15, 2002 10:51 pm, Dan Kegel wrote: snip
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
- Dan
(I was wondering if mine was the slowest!) real - 47m0.357 user-43m1.631 sys-2m51.668
Celeron 450 with 128MB running RedHat 7.3
snip
No yours is fast compared to my <blush> 300mhz pentium with 96mb of ram (around 3 hours) </blush>
--
Tony Lambregts
At 22.51 15/12/2002 -0800, Dan Kegel wrote:
[..]
So how long does it take *you* to do a clean build (just the 'make' part after 'make depend', say) of Wine-20021125?
On a notebook with a Pentium III-M 600MHz, 256Mb of RAM, (Mandrake 9 with gcc 3.2): 41m:32s
Alberto
------------------------------- Alberto Massari eXcelon Corp. http://www.StylusStudio.com
Build (after a cvs update, make depend) on an Athlon XP 1800 w 256 Mb DDR: 1038.43user 72.66system 19:41.06elapsed 94%CPU
That is 18.5 min. (the process was 'niced', so elapsed is more..)