Boost hashing performance with Robin Hood #14938

Open
opened 2026-01-31 04:23:45 +00:00 by claunia · 0 comments
Owner

Originally created by @WSLUser on GitHub (Aug 23, 2021).

Originally assigned to: @lhecker on GitHub.

Description of the new feature/enhancement

Use MIT-licensed https://github.com/martinus/robin-hood-hashing to improve performance and increase memory efficiency. It does come with a custom allocator but it won't win any medals and can be ignored. Instead mimalloc should be compiled in instead and is even recommended by maintainer to use a dedicated allocator instead. This is filed under another issue. Idea for adding this stems from https://github.com/microsoft/terminal/pull/10521#issuecomment-873255814. Also see https://github.com/microsoft/terminal/pull/10341 which addressed a bug with hashing that likely will need to be refactored slightly when adopting this library.

Proposed technical implementation details (optional)

Replace use of std::unordered_map and/or std::unordered_set with Robin Hood equivalent among other changes.

Originally created by @WSLUser on GitHub (Aug 23, 2021). Originally assigned to: @lhecker on GitHub. <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> # Description of the new feature/enhancement Use MIT-licensed https://github.com/martinus/robin-hood-hashing to improve performance and increase memory efficiency. It does come with a custom allocator but it won't win any medals and can be ignored. Instead mimalloc should be compiled in instead and is even recommended by maintainer to use a dedicated allocator instead. This is filed under another issue. Idea for adding this stems from https://github.com/microsoft/terminal/pull/10521#issuecomment-873255814. Also see https://github.com/microsoft/terminal/pull/10341 which addressed a bug with hashing that likely will need to be refactored slightly when adopting this library. <!-- A clear and concise description of what the problem is that the new feature would solve. Describe why and how a user would use this new functionality (if applicable). --> # Proposed technical implementation details (optional) Replace use of `std::unordered_map` and/or `std::unordered_set` with Robin Hood equivalent among other changes. <!-- A clear and concise description of what you want to happen. -->
claunia added the Issue-TaskNeeds-Tag-FixProduct-TerminalArea-Performance labels 2026-01-31 04:23:46 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14938