Intel Threading Building Blocks Scalable Allocator & Valgrind
Hi,
if you ever use the TBB (Intel Threading Building Blocks) allocator to overwrite malloc/free/* and want to use Valgrind for leak checking and fail, here is the simple trick to get it working:
valgrind --soname-synonyms=somalloc=\*tbbmalloc\* <your-application-here>
I missed that hint in the Valgrind documentation for my first tries ;)
Btw., the scalable allocator from TBB is a really BIG improvement over the normal system allocator on current Linux & Windows machines if you allocate mostly fixed size small object, like what happens if you heavily use STL data structures like std::map/set that are implemented as trees and you have other stuff like DOM/AST like data structures (even in the single threaded case, for which it just saves a LOT of memory).