El 10/03/2024 a las 22:40, Ivan Matek via Boost-users escribió:
Hi,
I have some small maps where I am pretty sure SIMD tricks that are amazing in general will just slow down the lookups since I never lookup items not in the map and map is so small that benefits of not looking up into the big array and trashing the cache are miniscule.
I know I can force compiler to not support SIMD with march, but I want to keep the SIMD optimizaitons for rest of the code, including large boost unordered objects.

Hi Ivan,

Boost.Unordered support can be disabled by globally defining the macro
BOOST_UNORDERED_DISABLE_SSE2, but this is probably not a solution for you because:

* It disables SSE2 for *all* flat containers in Boost.Unordered.
* The alternative implementation to SSE2 is likely to be slower anyway.

May I suggest that you use boost::unordered_map instead of boost::unordered_flat_map
for those small maps and see if this improves the performance of your program?

Best,

Joaquín M López Muñoz