▲ | jcelerier 7 months ago | ||||||||||||||||
> Thinking about it I'd really just like a flat_hash_map replacement so I can drop Abseil. boost has a flat_hash_map implementation for quite a few versions now, which from what I could see generally beat or is competitive with the absl implementation: https://www.reddit.com/r/cpp/comments/yikfi4/boost_181_will_... | |||||||||||||||||
▲ | vitus 7 months ago | parent [-] | ||||||||||||||||
The reddit thread mentions that the author was probably going to write a blog post about it at some point; I went and found it so you don't have to. I was curious what exactly differentiates boost::unordered_flat_map from absl::flat_hash_map, and was not disappointed. It seems that the lion's share of the performance improvement comes from using more of the metadata for the reduced hash value, although there are a few other contributing factors. The blog post further describes where absl::flat_hash_map performs better: iteration (and consequently erasure), which is ironic given those are a couple of areas where I always felt that absl::flat_hash_map was especially weak. But, it makes sense to double down on Abseil's strengths as well as its shortcomings. https://bannalia.blogspot.com/2022/11/inside-boostunorderedf... | |||||||||||||||||
|