Per thread arenas

Qinfan Wu wuqinfan at
Wed Apr 29 08:47:09 PDT 2015

On Tue, Apr 28, 2015 at 10:30 PM, SNL <snl20465 at> wrote:

> I am planning to assign each thread its own arena, as per my understanding
> this is akin to having a per thread heap since arena management is
> completely independent of each other.
> How this is know to affect performance and memory overheads ? I am sure
> this would depend a lot on application allocation patterns but are any
> generic numbers/data from past ?
If you have a lot of threads, having an arena for each thread could
potentially increasing memory usage and fragmentation. Usually the default
setting (4 arenas per cpu) is enough to reduce lock contention, since not
every allocation needs to acquire the arena lock.

> In cases where allocation done by thread T1 is freed by thread T2, how
> does jemalloc handles it ? Is there any basic garbage collection or
> remote-free ( request to free by remote thread which owns the allocation )
> implementation ? I see that this could lead to memory build up.
> Any inputs will be appreciated.
> _______________________________________________
> jemalloc-discuss mailing list
> jemalloc-discuss at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the jemalloc-discuss mailing list