Skip to content

Conversation

@crueter
Copy link
Contributor

@crueter crueter commented Dec 25, 2025

ankerl::unordered_dense is faster on average and has less memory usage
than both std::unordered_map and tsl::robin_map. It's also seemingly
better maintained, and shouldn't need an extra patch on top of upstream--this has the added benefit of allowing users to use the system unordered_dense package, which I'm sure the Gentoo packagers will appreciate. Plus it will complement #5159 nicely :)

Obviously, this will need a lot of testing.

Signed-off-by: crueter [email protected]

@crueter
Copy link
Contributor Author

crueter commented Dec 28, 2025

dep: #5163

@Sonicadvance1
Copy link
Member

In order to limit the potential fallout from this change. I would prefer if only tsl gets replaced with ankerl and leave the std implementation alone.

@crueter crueter changed the title [externals] use ankerl::unordered_dense over std and tsl [externals] use ankerl::unordered_dense over tsl Dec 29, 2025
@crueter
Copy link
Contributor Author

crueter commented Dec 29, 2025

done. Interestingly unordered_multi{map,set} don't seem to be used. Not sure what those are for, but I'll leave them be for now

@Sonicadvance1
Copy link
Member

done. Interestingly unordered_multi{map,set} don't seem to be used. Not sure what those are for, but I'll leave them be for now

The fextl stuff is grown organically as we hit std containers that need wrapping with allocators. So it was likely used before and removed, or I overreached while implementing. Doesn't really matter, it'll sit around and be used if someone needs it.

ankerl::unordered_dense is faster on average and has less memory usage
than tsl::robin_map. It is pretty significantly faster than std but
we'll keep that as is for now.

Obviously, this will need a lot of testing.

Signed-off-by: crueter <[email protected]>
@crueter crueter changed the title [externals] use ankerl::unordered_dense over tsl FEXCore: use ankerl::unordered_dense over tsl Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants