This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: performance testresults
- From: Stefan Olsson <stefan at xapa dot se>
- To: Benjamin Kosnik <bkoz at redhat dot com>
- Cc: libstdc++ at gcc dot gnu dot org
- Date: Wed, 04 Feb 2004 10:42:07 +0100
- Subject: Re: performance testresults
- References: <20040204003552.28e938ab.bkoz@redhat.com>
Hi,
this looks a bit strange to me since it doesn't match my testresults
(outside of the libstdc++ testsuite). I know, I should find the answer
to this myself but I have not access to the machine where I have the
required tools (tcl etc) right now...
...are the single threaded tests compiled with -pthread or not? When
compiled with -pthread on a single threaded application mt allocator is
about 10-20% slower than raw malloc in this kind of test.
Also, if one modifies the test to call do_loop(obj); twice the results
are quite different...
...at least on Linux where I have done the tests/development. This is
due to the fact that the second time, free memory is "found" much faster
by mt allocator than by malloc.
Brgds
/Stefan
Benjamin Kosnik wrote:
So, just for fun, here are the results for today's libstdc++.
Now that there are results for map and set, it looks pretty bleak!
-benjamin
------------------------------------------------------------------------
allocator.cc iterations: 100000 type: __gnu_norm::vector<int, __gnu_cxx::malloc_allocator<int> >
allocator.cc 55r 29u 26s 0mem 11pf
allocator.cc iterations: 100000 type: __gnu_norm::vector<int, __gnu_cxx::new_allocator<int> >
allocator.cc 54r 35u 19s 0mem 15pf
allocator.cc iterations: 100000 type: __gnu_norm::vector<int, __gnu_cxx::__mt_alloc<int> >
allocator.cc 56r 34u 22s 25216mem 17pf
allocator.cc iterations: 100000 type: __gnu_norm::list<int, __gnu_cxx::malloc_allocator<int> >
allocator.cc 256r 216u 40s 204800000mem 10pf
allocator.cc iterations: 100000 type: __gnu_norm::list<int, __gnu_cxx::new_allocator<int> >
allocator.cc 274r 229u 45s 204800000mem 12pf
allocator.cc iterations: 100000 type: __gnu_norm::list<int, __gnu_cxx::__mt_alloc<int> >
allocator.cc 153r 86u 64s 307806648mem 13pf
allocator.cc iterations: 100000 type: __gnu_norm::deque<int, __gnu_cxx::malloc_allocator<int> >
allocator.cc 52r 35u 17s 51999960mem 3pf
allocator.cc iterations: 100000 type: __gnu_norm::deque<int, __gnu_cxx::new_allocator<int> >
allocator.cc 58r 47u 11s 51999960mem 5pf
allocator.cc iterations: 100000 type: __gnu_norm::deque<int, __gnu_cxx::__mt_alloc<int> >
allocator.cc 94r 85u 9s 52004088mem 5pf
allocator.cc iterations: 100000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::malloc_allocator<int> >
allocator.cc 943r 359u 88s 409600000mem 10pf
allocator.cc iterations: 100000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::new_allocator<int> >
allocator.cc 453r 358u 94s 409600000mem 12pf
allocator.cc iterations: 100000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::__mt_alloc<int> >
allocator.cc 1511r 249u 132s 513007896mem 14pf
allocator.cc iterations: 100000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::malloc_allocator<int> >
allocator.cc 398r 343u 55s 307200000mem 10pf
allocator.cc iterations: 100000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::new_allocator<int> >
allocator.cc 420r 358u 62s 307200000mem 12pf
allocator.cc iterations: 100000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::__mt_alloc<int> >
allocator.cc 698r 252u 96s 513007896mem 14pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::vector<int, __gnu_cxx::malloc_allocator<int> >
allocator.cc-thread 56r 29u 27s 0mem 8pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::vector<int, __gnu_cxx::new_allocator<int> >
allocator.cc-thread 55r 35u 20s 0mem 12pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::vector<int, __gnu_cxx::__mt_alloc<int> >
allocator.cc-thread 56r 33u 23s 582536mem 18pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::list<int, __gnu_cxx::malloc_allocator<int> >
allocator.cc-thread 248r 211u 37s 204800000mem 7pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::list<int, __gnu_cxx::new_allocator<int> >
allocator.cc-thread 280r 225u 54s 204800000mem 9pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::list<int, __gnu_cxx::__mt_alloc<int> >
allocator.cc-thread 206r 131u 75s 308363968mem 14pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::deque<int, __gnu_cxx::malloc_allocator<int> >
allocator.cc-thread 52r 43u 9s 51999960mem 3pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::deque<int, __gnu_cxx::new_allocator<int> >
allocator.cc-thread 57r 49u 8s 51999960mem 5pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::deque<int, __gnu_cxx::__mt_alloc<int> >
allocator.cc-thread 94r 84u 10s 52004088mem 5pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::malloc_allocator<int> >
allocator.cc-thread 436r 352u 84s 409600000mem 7pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::new_allocator<int> >
allocator.cc-thread 449r 360u 89s 409600000mem 9pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::__mt_alloc<int> >
allocator.cc-thread 753r 310u 118s 513565216mem 15pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::malloc_allocator<int> >
allocator.cc-thread 374r 324u 50s 307200000mem 7pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::new_allocator<int> >
allocator.cc-thread 393r 331u 62s 307200000mem 9pf
allocator.cc-thread iterations: 100000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::__mt_alloc<int> >
allocator.cc-thread 823r 300u 115s 513565216mem 15pf
allocator_map_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >
allocator_map_thread.cc-thread 90r 0u 0s 144mem 9pf
allocator_map_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int const>, __gnu_cxx::new_allocator<int> >
allocator_map_thread.cc-thread 86r 0u 0s 0mem 9pf
allocator_map_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int const>, __gnu_cxx::malloc_allocator<int> >
allocator_map_thread.cc-thread 78r 0u 0s 216mem 9pf
allocator_map_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int const>, __gnu_cxx::__mt_alloc<std::pair<int const, int> > >
allocator_map_thread.cc-thread 52r 0u 0s 3988056mem 9pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::vector<int, __gnu_cxx::malloc_allocator<int> >
allocator_thread.cc-thread 79r 0u 0s 216mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::vector<int, __gnu_cxx::new_allocator<int> >
allocator_thread.cc-thread 79r 0u 0s 216mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::vector<int, __gnu_cxx::__mt_alloc<int> >
allocator_thread.cc-thread 84r 0u 0s 656336mem 9pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::list<int, __gnu_cxx::malloc_allocator<int> >
allocator_thread.cc-thread 1196r 0u 0s 0mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::list<int, __gnu_cxx::new_allocator<int> >
allocator_thread.cc-thread 1259r 0u 0s 0mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::list<int, __gnu_cxx::__mt_alloc<int> >
allocator_thread.cc-thread 806r 0u 0s 160231416mem 9pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::deque<int, __gnu_cxx::malloc_allocator<int> >
allocator_thread.cc-thread 135r 0u 0s 80mem 4pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::deque<int, __gnu_cxx::new_allocator<int> >
allocator_thread.cc-thread 134r 0u 0s 0mem 4pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::deque<int, __gnu_cxx::__mt_alloc<int> >
allocator_thread.cc-thread 132r 0u 0s 32920mem 3pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::malloc_allocator<int> >
allocator_thread.cc-thread 1718r 0u 0s 72mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::new_allocator<int> >
allocator_thread.cc-thread 1992r 0u 0s 0mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::map<int, int, std::less<int>, __gnu_cxx::__mt_alloc<int> >
allocator_thread.cc-thread 1429r 0u 0s 184326088mem 9pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::malloc_allocator<int> >
allocator_thread.cc-thread 1601r 0u 0s 0mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::new_allocator<int> >
allocator_thread.cc-thread 1882r 0u 0s 0mem 10pf
allocator_thread.cc-thread iterations: 25000 type: __gnu_norm::set<int, std::less<int>, __gnu_cxx::__mt_alloc<int> >
allocator_thread.cc-thread 1522r 0u 0s 156850640mem 9pf
string_append.cc char 1r 1u 0s 0mem 13pf
string_append.cc string 1r 1u 0s 0mem 0pf
string_append.cc char 9r 8u 1s 0mem 0pf
string_append.cc string 10r 9u 1s 0mem 0pf
string_append.cc char 88r 84u 4s 0mem 0pf
string_append.cc string 113r 109u 4s 0mem 0pf
string_cons_input_iterator.cc 1r 1u 0s 0mem 2pf
string_cons_input_iterator.cc 12r 9u 3s 0mem 0pf
string_cons_input_iterator.cc 119r 92u 27s 0mem 0pf
is_wchar_t.cc C 118r 118u 0s 0mem 9pf
is_wchar_t.cc C++ 388r 388u 0s 0mem 0pf
narrow_widen_char.cc narrow 309r 309u 0s 0mem 9pf
narrow_widen_char.cc narrow_array 1127r 1125u 2s 0mem 0pf
narrow_widen_char.cc widen 349r 349u 0s 0mem 0pf
narrow_widen_char.cc widen_array 1131r 1129u 2s 0mem 0pf
narrow_widen_wchar_t.cc narrow 320r 320u 0s 0mem 9pf
narrow_widen_wchar_t.cc narrow array 442r 441u 1s 0mem 0pf
narrow_widen_wchar_t.cc widen 209r 209u 0s 0mem 0pf
narrow_widen_wchar_t.cc widen array 205r 203u 1s 0mem 0pf
wchar_t_in.cc C (iconv) 145r 145u 0s 0mem 3pf
wchar_t_in.cc C++ (codecvt) 206r 196u 0s 0mem 1pf
wchar_t_length.cc C++ (codecvt) 197r 192u 1s 0mem 10pf
wchar_t_out.cc C (iconv) 143r 143u 0s 0mem 4pf
wchar_t_out.cc C++ (codecvt) 234r 234u 0s 0mem 1pf
container_benchmark.cc size = 100 :
container_benchmark.cc array 51r 51u 0s 0mem 0pf
container_benchmark.cc vector (pointer) 51r 51u 0s 0mem 0pf
container_benchmark.cc vector (iterator) 52r 52u 0s 0mem 0pf
container_benchmark.cc deque 106r 106u 0s 0mem 1pf
container_benchmark.cc list 304r 304u 0s 0mem 0pf
container_benchmark.cc set 164r 164u 0s 0mem 1pf
container_benchmark.cc multiset 277r 277u 0s 0mem 0pf
container_benchmark.cc size = 1000 :
container_benchmark.cc array 74r 74u 0s 0mem 0pf
container_benchmark.cc vector (pointer) 75r 74u 1s 0mem 0pf
container_benchmark.cc vector (iterator) 76r 76u 0s 0mem 0pf
container_benchmark.cc deque 107r 107u 0s 0mem 0pf
container_benchmark.cc list 254r 254u 0s 0mem 0pf
container_benchmark.cc set 155r 155u 0s 0mem 0pf
container_benchmark.cc multiset 232r 232u 0s 0mem 0pf
container_benchmark.cc size = 10000 :
container_benchmark.cc array 73r 71u 2s 0mem 0pf
container_benchmark.cc vector (pointer) 72r 71u 1s 0mem 0pf
container_benchmark.cc vector (iterator) 72r 71u 1s 0mem 0pf
container_benchmark.cc deque 99r 99u 0s 0mem 0pf
container_benchmark.cc list 274r 274u 0s 0mem 0pf
container_benchmark.cc set 169r 169u 0s 0mem 0pf
container_benchmark.cc multiset 329r 329u 0s 0mem 0pf
container_benchmark.cc size = 100000 :
container_benchmark.cc array 70r 65u 5s 0mem 0pf
container_benchmark.cc vector (pointer) 69r 67u 2s 0mem 0pf
container_benchmark.cc vector (iterator) 71r 68u 3s 0mem 0pf
container_benchmark.cc deque 98r 95u 3s 0mem 0pf
container_benchmark.cc list 576r 575u 1s 0mem 0pf
container_benchmark.cc set 439r 437u 2s 0mem 0pf
container_benchmark.cc multiset 614r 614u 0s 0mem 0pf
list_create_fill_sort.cc Iters: 10000000 Size: 1 179r 179u 0s 0mem 14pf
list_create_fill_sort.cc Iters: 1000000 Size: 10 384r 383u 1s 0mem 0pf
list_create_fill_sort.cc Iters: 100000 Size: 100 343r 343u 0s 0mem 0pf
list_create_fill_sort.cc Iters: 10000 Size: 1000 383r 383u 0s 0mem 0pf
map_create_fill.cc 124r 124u 0s 0mem 9pf
complex_norm.cc norm 168r 166u 0s 0mem 11pf
complex_norm.cc 118r 118u 0s 0mem 0pf
cout_insert_int.cc 665r 19u 18s 0mem 21pf
filebuf_copy.cc C unlocked 673r 628u 45s 0mem 4pf
filebuf_copy.cc C++ 697r 666u 31s 0mem 0pf
filebuf_sputc.cc C 512r 425u 38s 0mem 4pf
filebuf_sputc.cc C unlocked 368r 267u 41s 0mem 0pf
filebuf_sputc.cc C++ 331r 269u 39s 0mem 0pf
fstream_seek_write.cc 254r 91u 163s 0mem 6pf
ifstream_extract_float.cc precision 6 2600r 2572u 14s 0mem 9pf
ifstream_extract_float.cc precision 12 2261r 2240u 10s 0mem 0pf
ifstream_extract_int.cc 755r 741u 13s 0mem 5pf
ifstream_getline.cc 2r 0u 0s 0mem 6pf
ofstream_insert_float.cc precision 6 3628r 2820u 44s 0mem 20pf
ofstream_insert_float.cc precision 12 3471r 2903u 43s 0mem 0pf
ofstream_insert_int.cc 1068r 536u 36s 0mem 9pf