<p>I currently have heavily multi-threaded server application, and I'm shopping around for a good multi-threaded memory allocator.</p>

<p>So far I'm torn between:</p>

<ul>
<li>Sun's umem</li>
<li>Google's tcmalloc</li>
<li>Intel's threading building blocks allocator</li>
<li>Emery Berger's hoard</li>
</ul>

<p>From what I've found hoard might be the fastest, but I hadn't heard of it before today, so I'm skeptical if its really as good as it seems. Anyone have personal experience trying out these allocators?</p>

Maybe this is the wrong way to approach what you are asking, but maybe a different tactic could be employed altogether. If you are looking for a really fast memory allocator maybe you should ask why you need to be spending all that time allocating memory when you could perhaps just get away with stack allocation of variables. Stack allocation, while way more annoying, done right could save you lots in the way of mutex contention, as well as keeping strange memory corruption issues out of your code. Also, you potentially have less fragmentation which could help.