std::map with tbb scalable allocator and tbbmalloc_proxy

std::map with tbb scalable allocator and tbbmalloc_proxy

While profiling my application I found that a lot of time was being spent on the memory allocation and deallocation so I switched to tbb scalable allocator which helped a lot. I have not explicitly changed the code to allocate the memory through scalable allocator but I am linking my application with tbbmalloc_proxy.so library which is doing its job.  But still, the profiling tool shows some red areas where I am inserting some data into a map.
So my questing is that, do I need to explicitly define custom memory allocator for map e.g

std::map<const key,T,scalable_allocator<std::pair<const Key, T>> 

or just linking to the tbbmalloc_proxy.so library will do the job?

 

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi,

You are using it right. Linking to tbbmalloc_proxy.so library will substitute all standard allocation routines to tbb ones, and that is enough. However, I recommend to try LD_PRELOAD option as described here. It just ensures that tbbmalloc_proxy.so symbols for malloc/free will be loaded firstly.

On the other hand, you can try one of our concurrent containers, if you faced insertion bottleneck.

- Nikita

Leave a Comment

Please sign in to add a comment. Not a member? Join today