Hacker News new | ask | show | jobs
A C++ implementation of a fast hash map and hash set using hopscotch hashing (github.com)
49 points by gjvc 2 hours ago
1 comments

How does it compare to boost unordered flat map?

Looks like the benchmarks were last updated in 2019.

https://tessil.github.io/2016/08/29/benchmark-hopscotch-map....

Has some older benchmarks, including those two.

A more recent benchmark is https://martin.ankerl.com/2022/08/27/hashmap-bench-01/

However, it lacks the newer Boost stuff which is very fast.

The Hopscotch map was interesting at the time but due to unfortunate timing was immediately outshone by absl::unordered_flat_map A.K.A. "Swiss tables", and there's been even more water under the bridge since then.

Abseil Swiss Tables carefully avoids intermediate allocations/copy constructor calls.[1] I'd be wary about inferring underlying algorithm performance from benchmarks that don't explicitly control for these optimisations. (Or maybe everyone is using them and I'm out of touch.)

[1] https://abseil.io/about/design/swisstables

Is there something better than Swiss tables ?.
No. Fundamentally it's not possible to be faster.
This is not true. It is fast as a general purpose hash table, but claiming it's the fastest across all datasets and workloads is silly.