I'm starting to work on the finer details of YetiSim, and one of the details is memory management. I probably need to revise my design, however for now I am looking at what data structures I can use to increase performance.
I'm looking at the difference between say std::list and std::vector. It seems to be that an implementation of std::list that used a linked list would kill the cache. However, if I pass the cache_aligned_allocator is this sufficient to make the container cache friendly? Are all STL containers cache friendly if they use the cache_aligned_allocator? Which ones should I prefer or avoid ?
Are there negative performance implications if I were to simply override new/delete with the scalable_allocator, and use the cache_aligned_allocator for my containers ?