OK, on to the good news: We are thinking of changing the default
allocator to __mt_alloc before the 3.4 release. The ABI has already
been changed. For MT test cases, esp. on MP hardware, it performs far
better than the current default allocator on studied platforms:
i386-*-linux*
i386-*-freebsd4.9
alpha-*-freebsd5.2
sparc64-*-freebsd5.2
[For the record, the tested version is -r1.10 on mainline; i.e. not
the latest version on the 3.4 branch. So be careful if you want to
test it yourself before commenting. I did 'cvs update -j1.10
libstdc++-v3/testsuite/performance/allocator.cc' within a 3.4 tree;
and then bootstrapped and ran 'gmake check-performance'.]
For single-threaded cases, it is sometimes far better than the current
default allocator (e.g. with list<> on FreeBSD4/i386,sparc64),
sometimes far worse (e.g. with list<> on FreeBSD5/alpha) and typically
within a few percent (e.g. with vector<>). I do think we would need
to understand why it performs so bad on this one alpha machine.