This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Just a quick reply to this.
Here are my results from your test program, with various configs of the
mainline mt_allocator.h.
std::allocator == new_allocator
Number of slots
Size 1 8 64 1024 8192 1048576
---------- ------- ------- ------- ------- ------- -------
8 bytes 1.4226 1.0012 0.98987 0.975 0.97926 0.96566
128 bytes 0.91381 1.006 0.99863 0.99573 1.013 1.0146
1024 bytes 0.99121 0.96848 0.99884 1.005 1.007 1.0021
std::allocator == __mt_alloc<true, __common_pool_policy<true> >
Number of slots
Size 1 8 64 1024 8192 1048576
---------- ------- ------- ------- ------- ------- -------
8 bytes 1.961 0.87375 0.87284 0.83523 0.79061 0.79817
128 bytes 1.1493 1.0472 1.0351 1.0143 1.105 1.1065
1024 bytes 0.79606 0.93996 0.95405 0.93934 0.94546 0.98916
std::allocator == __mt_alloc<true, __common_pool_policy<false> >
Number of slots
Size 1 8 64 1024 8192 1048576
---------- ------- ------- ------- ------- ------- -------
8 bytes 6.6288 1.2739 1.2681 1.1886 1.1329 1.0835
128 bytes 1.6125 1.4102 1.327 1.3641 1.5426 1.431
1024 bytes 0.80295 0.96863 0.93847 0.96163 0.972 0.97285
std::allocator == __mt_alloc<true, __per_type_pool_policy<_Tp, true> >
Number of slots
Size 1 8 64 1024 8192 1048576
---------- ------- ------- ------- ------- ------- -------
8 bytes 1.3585 0.86375 0.99131 0.93866 0.85003 0.8162
128 bytes 1.4086 1.237 1.1254 1.0701 1.102 1.1668
1024 bytes 0.92151 1.0126 0.95911 0.97437 0.95551 0.98735
std::allocator == __mt_alloc<true, __per_type_pool_policy<_Tp, false> >
Number of slots
Size 1 8 64 1024 8192 1048576
---------- ------- ------- ------- ------- ------- -------
8 bytes 2.6789 1.2694 1.2444 1.1768 1.0956 1.3237
128 bytes 2.5506 3.1284 1.5222 1.3942 1.5003 1.4949
1024 bytes 0.91519 1.0053 0.99694 0.99079 0.98643 0.99131
In addition, I have "make check-performance" results for gcc-3_4-branch.
There are three results: baseline 3.4.2, and with a backport of
mt_alloch to the branch, with common and per_thread pool types as marked.
> __gnu_cxx::__pool<(bool)1>::_M_reclaim_memory(char*, unsigned)
> __gnu_cxx::__mt_alloc<char, __gnu_cxx::__common_pool_policy<(bool)1> >::allocate(unsigned, void const*)
> __gnu_cxx::__pool<(bool)1>::_M_get_thread_id()
I see this too. My initial attemps to make _M_reclaim_memory more svelt
failed. Perhaps I'll have another go at this.
-benjamin
Attachment:
20040912-libstdc++-performance.sum.bz2
Description: BZip2 compressed data
Attachment:
20040913-libstdc++-performance.mt-per-type.sum.bz2
Description: BZip2 compressed data
Attachment:
20040913-libstdc++-performance.mt.sum.bz2
Description: BZip2 compressed data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |