[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-devel] new Monotone under Cygwin timings,
Joe Wilson <=