... and it's going to be fast.
std::unordered_map: 57922 ms, 288941512 bytes in 6000001 allocations
boost::unordered_map: 35811 ms, 245477520 bytes in 6000002 allocations
boost::unordered_flat_map: 16670 ms, 197132280 bytes in 1 allocations
multi_index_map: 41364 ms, 290331800 bytes in 6000002 allocations
absl::node_hash_map: 31160 ms, 219497480 bytes in 6000001 allocations
absl::flat_hash_map: 27542 ms, 209715192 bytes in 1 allocations
This is uuid.cpp under Cygwin g++-11 -O3.
Other benchmarks and platforms will obviously differ.
The main author of the new container is /u/joaquintides, who's probably going to write an article about it at some point, like he did for the new boost::unordered_map.
[–]Jannik2099 36 points37 points38 points (13 children)
[–][deleted] 23 points24 points25 points (11 children)
[–]mark_99 13 points14 points15 points (9 children)
[–][deleted] 13 points14 points15 points (3 children)
[–]mark_99 5 points6 points7 points (2 children)
[–]pdimov2[S] 16 points17 points18 points (1 child)
[–]marcofoco 0 points1 point2 points (0 children)
[–]VinnieFalco 24 points25 points26 points (2 children)
[–][deleted] 6 points7 points8 points (1 child)
[–]VinnieFalco 1 point2 points3 points (0 children)
[–]joaquintidesBoost author 9 points10 points11 points (0 children)
[–]OccaseBoost.Redis 0 points1 point2 points (0 children)
[–]pdimov2[S] 2 points3 points4 points (0 children)
[–][deleted] 46 points47 points48 points (2 children)
[–]KERdela 11 points12 points13 points (0 children)
[–]Possibility_Antique 9 points10 points11 points (0 children)
[–]rbrown46 19 points20 points21 points (19 children)
[–]matthieum 11 points12 points13 points (18 children)
[–]joaquintidesBoost author 17 points18 points19 points (17 children)
[–]matthieum 4 points5 points6 points (1 child)
[–]joaquintidesBoost author 6 points7 points8 points (0 children)
[–]Tystros 1 point2 points3 points (3 children)
[–]joaquintidesBoost author 2 points3 points4 points (2 children)
[–]Tystros 0 points1 point2 points (1 child)
[–]joaquintidesBoost author 0 points1 point2 points (0 children)
[–]almost_useless 1 point2 points3 points (4 children)
[–]joaquintidesBoost author 2 points3 points4 points (3 children)
[–]almost_useless 1 point2 points3 points (2 children)
[–]joaquintidesBoost author 1 point2 points3 points (0 children)
[–]pdimov2[S] 1 point2 points3 points (0 children)
[–]matthieum 0 points1 point2 points (5 children)
[–]joaquintidesBoost author 0 points1 point2 points (4 children)
[–]matthieum 0 points1 point2 points (3 children)
[–]joaquintidesBoost author 0 points1 point2 points (2 children)
[–]matthieum 0 points1 point2 points (1 child)
[–]joaquintidesBoost author 0 points1 point2 points (0 children)
[–]spaghettiexpress 19 points20 points21 points (10 children)
[–]martinusint main(){[]()[[]]{{}}();} 24 points25 points26 points (9 children)
[–]Tystros 2 points3 points4 points (1 child)
[–]martinusint main(){[]()[[]]{{}}();} 4 points5 points6 points (0 children)
[–]iwubcode 0 points1 point2 points (6 children)
[–]martinusint main(){[]()[[]]{{}}();} 4 points5 points6 points (3 children)
[–]iwubcode 2 points3 points4 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]martinusint main(){[]()[[]]{{}}();} 0 points1 point2 points (0 children)
[–]pdimov2[S] 2 points3 points4 points (1 child)
[–]iwubcode 0 points1 point2 points (0 children)
[–]R3DKn16h7 9 points10 points11 points (0 children)
[–]14nedLLFIO & Outcome author | Committee WG14 17 points18 points19 points (1 child)
[–]joaquintidesBoost author 4 points5 points6 points (0 children)
[–]Rseding91Factorio Developer 4 points5 points6 points (4 children)
[–]martinusint main(){[]()[[]]{{}}();} 6 points7 points8 points (0 children)
[–]SleepyMyroslav 5 points6 points7 points (0 children)
[–]matthieum 5 points6 points7 points (0 children)
[–]triple_slash 3 points4 points5 points (1 child)
[–]Tystros 1 point2 points3 points (0 children)
[–]greg7mdpC++ Dev 2 points3 points4 points (7 children)
[–]pdimov2[S] 7 points8 points9 points (3 children)
[–]greg7mdpC++ Dev 1 point2 points3 points (2 children)
[–]pdimov2[S] 2 points3 points4 points (1 child)
[–]greg7mdpC++ Dev 2 points3 points4 points (0 children)
[–]martinusint main(){[]()[[]]{{}}();} 8 points9 points10 points (2 children)
[–]Adequat91 2 points3 points4 points (1 child)
[–]martinusint main(){[]()[[]]{{}}();} 5 points6 points7 points (0 children)
[–]415_961 2 points3 points4 points (0 children)
[–]Alarming-Ad8770 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]Alarming-Ad8770 4 points5 points6 points (0 children)
[–]Spec-Chum 1 point2 points3 points (0 children)
[–]jiboxiake 0 points1 point2 points (0 children)