From b0e076c55d6001ff8d8a36783a904ff86f8fcbb1 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Thu, 8 Dec 2022 22:29:35 +0200 Subject: [PATCH] Add mulx variants to benchmarks --- benchmark/uint32.cpp | 12 ++++++++---- benchmark/uint64.cpp | 12 ++++++++---- benchmark/word_size.cpp | 12 ++++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/benchmark/uint32.cpp b/benchmark/uint32.cpp index 5b37de52..887ce727 100644 --- a/benchmark/uint32.cpp +++ b/benchmark/uint32.cpp @@ -289,8 +289,11 @@ template using std_unordered_map = template using boost_unordered_map = boost::unordered_map, std::equal_to, allocator_for>; -template using boost_unordered_flat_map = - boost::unordered_flat_map, std::equal_to, allocator_for>; +template using boost_unordered_flat_map_xmx = + boost::unordered_flat_map, std::equal_to, allocator_for, boost::unordered::detail::foa::xmx_mix>; + +template using boost_unordered_flat_map_mulx = + boost::unordered_flat_map, std::equal_to, allocator_for, boost::unordered::detail::foa::mulx_mix>; #ifdef HAVE_ABSEIL @@ -315,7 +318,8 @@ int main() test( "std::unordered_map" ); test( "boost::unordered_map" ); - test( "boost::unordered_flat_map" ); + test( "boost::unordered_flat_map, xmx" ); + test( "boost::unordered_flat_map, mulx" ); #ifdef HAVE_ANKERL_UNORDERED_DENSE @@ -334,7 +338,7 @@ int main() for( auto const& x: times ) { - std::cout << std::setw( 30 ) << ( x.label_ + ": " ) << std::setw( 5 ) << x.time_ << " ms, " << std::setw( 9 ) << x.bytes_ << " bytes in " << x.count_ << " allocations\n"; + std::cout << std::setw( 33 ) << ( x.label_ + ": " ) << std::setw( 5 ) << x.time_ << " ms, " << std::setw( 9 ) << x.bytes_ << " bytes in " << x.count_ << " allocations\n"; } } diff --git a/benchmark/uint64.cpp b/benchmark/uint64.cpp index 94be050a..dd4faa57 100644 --- a/benchmark/uint64.cpp +++ b/benchmark/uint64.cpp @@ -289,8 +289,11 @@ template using std_unordered_map = template using boost_unordered_map = boost::unordered_map, std::equal_to, allocator_for>; -template using boost_unordered_flat_map = - boost::unordered_flat_map, std::equal_to, allocator_for>; +template using boost_unordered_flat_map_xmx = + boost::unordered_flat_map, std::equal_to, allocator_for, boost::unordered::detail::foa::xmx_mix>; + +template using boost_unordered_flat_map_mulx = + boost::unordered_flat_map, std::equal_to, allocator_for, boost::unordered::detail::foa::mulx_mix>; #ifdef HAVE_ABSEIL @@ -325,7 +328,8 @@ int main() #endif test( "boost::unordered_map" ); - test( "boost::unordered_flat_map" ); + test( "boost::unordered_flat_map, xmx" ); + test( "boost::unordered_flat_map, mulx" ); #ifdef HAVE_ANKERL_UNORDERED_DENSE @@ -344,7 +348,7 @@ int main() for( auto const& x: times ) { - std::cout << std::setw( 30 ) << ( x.label_ + ": " ) << std::setw( 5 ) << x.time_ << " ms, " << std::setw( 9 ) << x.bytes_ << " bytes in " << x.count_ << " allocations\n"; + std::cout << std::setw( 33 ) << ( x.label_ + ": " ) << std::setw( 5 ) << x.time_ << " ms, " << std::setw( 9 ) << x.bytes_ << " bytes in " << x.count_ << " allocations\n"; } } diff --git a/benchmark/word_size.cpp b/benchmark/word_size.cpp index f7412192..433afb1d 100644 --- a/benchmark/word_size.cpp +++ b/benchmark/word_size.cpp @@ -181,8 +181,11 @@ template using std_unordered_map = template using boost_unordered_map = boost::unordered_map, std::equal_to, allocator_for>; -template using boost_unordered_flat_map = - boost::unordered_flat_map, std::equal_to, allocator_for>; +template using boost_unordered_flat_map_xmx = + boost::unordered_flat_map, std::equal_to, allocator_for, boost::unordered::detail::foa::xmx_mix>; + +template using boost_unordered_flat_map_mulx = + boost::unordered_flat_map, std::equal_to, allocator_for, boost::unordered::detail::foa::mulx_mix>; #ifdef HAVE_ABSEIL @@ -207,7 +210,8 @@ int main() test( "std::unordered_map" ); test( "boost::unordered_map" ); - test( "boost::unordered_flat_map" ); + test( "boost::unordered_flat_map, xmx" ); + test( "boost::unordered_flat_map, mulx" ); #ifdef HAVE_ANKERL_UNORDERED_DENSE @@ -226,7 +230,7 @@ int main() for( auto const& x: times ) { - std::cout << std::setw( 30 ) << ( x.label_ + ": " ) << std::setw( 5 ) << x.time_ << " ms, " << std::setw( 9 ) << x.bytes_ << " bytes in " << x.count_ << " allocations\n"; + std::cout << std::setw( 33 ) << ( x.label_ + ": " ) << std::setw( 5 ) << x.time_ << " ms, " << std::setw( 9 ) << x.bytes_ << " bytes in " << x.count_ << " allocations\n"; } }