Automated benchmarks of boost::unordered_[multi]set
against std::unordered_[multi]set
and Boost.MultiIndex.
unique_running_insertion.cpp
: insertion of n randomunsigned int
s into a set, n = 10,000 to 3M.non_unique_running_insertion.cpp
: same as above, but the container is a multiset and elements are repeated an average of 5 times.unique_scattered_erasure.cpp
: erasure by iterator in random order of the n elements of a set filled as above.non_unique_scattered_erasure.cpp
: same as prior, but with multisets.non_unique_scattered_erasure_by_key.cpp
: erasure by key of all the elements of a multiset ofstd::string
s filled with random strings with average repetition 5, n = 10,000 to 3M.unique_scattered_lookup.cpp
:- Successful: lookup of the n keys of the container in the same order as inserted.
- Unsuccesful: lookup of n random keys not related to those inserted (and thus not present in the container with probabilty ~100%).
non_unique_scattered_lookup.cpp
: same as prior, but with multisets.
gcc
: GCC 12 with libstdc++-v3, 64 bitsclang_libcpp
: Clang 15 with libc++, 64 bitsvs
: Visual Studio 2022 with (formerly known as) Dinkumware stdlib implementation, 64 bits
running insertion.xlsx
: results ofunique_running_insertion.cpp
andnon_unique_running_insertion.cpp
scattered erasure.xlsx
: results ofunique_scattered_erasure.cpp
andnon_unique_scattered_erasure.cpp
scattered erasure by key.xlsx
: results ofnon_unique_scattered_erasure_by_key.cpp
scattered successful looukp.xlsx
: results ofunique_scattered_lookup.cpp
andnon_unique_scattered_lookup.cpp
, successful casescattered unsuccessful looukp.xlsx
: results ofunique_scattered_lookup.cpp
andnon_unique_scattered_lookup.cpp
, unsuccessful case
practice
: Without duplicate elements (sets)practice non-unique
: With duplicate elements (multisets)practice non-unique 5
: Same as above, but the maximum load factor is set to 5practice norehash
: (Insertion only) same aspractice
, butreserve
is called prior to insertionpractice norehash non-unique
: (Insertion only) same aspractice non-unique
, butreserve
is called prior to insertionpractice norehash non-unique 5
: (Insertion only) same aspractice non-unique 5
, butreserve
is called prior to insertion
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements, prior reserve |
duplicate elements, prior reserve |
duplicate elements, max load factor 5, prior reserve |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
---|---|
by key, duplicate elements |
by key, duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements, prior reserve |
duplicate elements, prior reserve |
duplicate elements, max load factor 5, prior reserve |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
---|---|
by key, duplicate elements |
by key, duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements, prior reserve |
duplicate elements, prior reserve |
duplicate elements, max load factor 5, prior reserve |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
---|---|
by key, duplicate elements |
by key, duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |
![]() |
![]() |
![]() |
---|---|---|
non-duplicate elements | duplicate elements | duplicate elements, max load factor 5 |