Performance regression with libstdc++-v3
Reichelt
reichelt@igpm.rwth-aachen.de
Wed May 16 06:05:00 GMT 2001
Hello!
I'm experiencing quite a performance problem with lists under libstdc++-v3.
Consider the following simple program:
#include <list>
int main ()
{
std::list<int> List;
for ( int i=0; i<10000000; ++i )
List.push_back( int() );
return 0;
}
Compiled with different versions of g++ (-O3 -funroll-loops -static)
I get the following timings (on an i686 system, but it looks similar
on an IRIX6.5 workstation):
* old libstdc++:
- gcc 2.95.2:
2,51s user 1,01s system 3,516 total
- gcc 20001106:
2,36s user 1,08s system 3,420 total
* new libstdc++-v3:
- gcc 20001113:
4,58s user 1,13s system 5,702 total
- gcc 20010507:
4,69s user 1,06s system 5,749 total
This is a regression in performance of about 65% that came with the
introduction of libstdc++-v3! (I also tested several snapshots between
December 2000 and May 2001, but the results are the same. Compiling
with "-fno-exceptions" doesn't help either.)
That leads to a couple of questions:
* Is that a known problem?
* Any ideas what causes this performance breakdown
(maybe some debugging code, or is it a problem of the optimizer)?
* Are there any compiler options that I can use to increase performance?
* Can somebody improve speed again, *please*?
Greetings,
Volker Reichelt
------------------------------------------------------------------------------
email: reichelt@igpm.rwth-aachen.de
http://www.igpm.rwth-aachen.de/reichelt
------------------------------------------------------------------------------
More information about the Libstdc++
mailing list