What cache friendly high performance alternatives are there to the traditional STL.
They should be optimized for the caches of modern 64bit Intel/AMD CPU’s.
I’m not looking for official standards based STL implementations necessarily it could be based on that or be an extended STL with high performance data structures. Or simply a library that provides general data structures like list, map etc.
High concurrency and lock free data structures would be a bonus.
I’m interested in a link & a licence.
I’ve read about EASTL and have used Boost before.
What are game developers and the scientific community using to get the most out of the CPU’s at the moment? What is in the pipeline?
+1 for EASTL.
Anything based on a C++11 compliant compiler will potentially perform a lot better because of move semantics.
This difference can already be made visible with the GNU libstdc++ implementation with
-std=c++0xFor concurrency/lockfree containers I recommend:
My central piece of advice would be this:
Optimizing the standard library is mostly a factor of deciding how to use algorithms/containers correctly than looking for the ‘perfect’ implementation. STL being general purpose, there would never be a perfect implementation.
Just watch your return values/out parameters closely (prefer to use output iterators, and use
transform,partial_sum,accumulateinto a container that hadreserveorresizecalled on it appropriately; Defineswapfor your element types etc.)