monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] new Monotone under Cygwin timings


From: Joe Wilson
Subject: [Monotone-devel] new Monotone under Cygwin timings
Date: Sat, 14 May 2005 08:28:08 -0700 (PDT)

For the benefit the Cygwin Monotone users...

I found out part of the reason why the default GCC compiler for Cygwin
(gcc version 3.3.3 (cygwin special)) produces a very slow Monotone executable -
the pthread_mutex_* calls dominates its time in libstdc++.

When I built a non-thread safe version of GCC using the following flags:

$ g++ -v
Reading specs from
/cygdrive/f/opt/compilers/GCC343-no-thread/bin/../lib/gcc/i686-pc-cygwin/3.4.3/specs
Configured with: ../gcc-3.4.3/configure --prefix=/f/opt/compilers/GCC343 
--disable-threads
--enable-languages=c,c++ --disable-win32-registry --disable-nls --disable-shared
--disable-libstdcxx-debug
Thread model: single
gcc version 3.4.3

and used this new version of GCC to build boost_1_32_0 and Monotone 0.19, 
the time for a fresh Monotone source pull went down from 3.6 hours to 
just over one hour on a 2.0 GHz Pentium4:

real: 61m29.420s
user: 59m59.593s
sys:  0m8.796s

Although it is 3.5 times faster than before, this is still twice as slow 
as the MinGW-built Monotone 0.19 which can do a fresh pull in 33 minutes
on this machine.

The default version of Cygwin GCC that produced the slow Monotone executable
(with the 3.6 hour pull) was configured with these flags:

$ g++ -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr 
--exec-prefix=/usr
--sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib 
--mandir=/usr/share/man
--infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,java,objc,pascal 
--enable-nls
--without-included-gettext --enable-libgcj --with-system-zlib 
--enable-interpreter
--enable-threads=posix --enable-java-gc=boehm --enable-sjlj-exceptions
--disable-version-specific-runtime-libs --disable-win32-registry
Thread model: posix
gcc version 3.3.3 (cygwin special)

The GCC version (3.3 vs 3.4) did not play a factor in my timings. It just 
appears that
any version of libstdc++ built with a posix thread model is very slow under 
Cygwin.

I've read that building GCC with dwarf2 instead of sjlj exceptions would produce
even faster code, but when Boost and Monotone were built with such a compiler 
it would
produce an executable that would immediately crash somewhere in libstdc++.



                
__________________________________ 
Yahoo! Mail Mobile 
Take Yahoo! Mail with you! Check email on your mobile phone. 
http://mobile.yahoo.com/learn/mail 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]