I already wrote about tcmalloc, and how it helped with memory fragmentation. This time had some experience with extended features - memory profiling and leak checker. With tcmalloc it is possible to get an overview as well as detailed reports of what areas of memory are allocated for what uses. Even more, it can detect and report any memory that leaked. Of course, valgrind does that too. With one slight difference:
valgrind slows down applications 20-40 times (my tests ran 4s instead of 14ms)
tcmalloc does not. Same 14ms.
I wrote some MySQL UDFs for profiling and heap checking management, so can extract per-thread single-test stuff. Will try to clean up and release. Would be shame not to.
Domas Mituzas, a MySQL employee and Wikipedia hacker, just posted a great writeup of his recent experience using tcmalloc (an open source Google perftool) to debug some nasty memory leaks