[zeromq-dev] Important: backward incompatible changes for 0MQ/3.0!

Jason Evans jasone at canonware.com
Fri Mar 25 22:29:35 CET 2011


Chuck Remes <cremes.devlist <at> mac.com> writes:
> I ran a *long* test (2 days) using the jemalloc allocator on linux (i.e.
replacing the allocator at the
> process level).
> 
> It improved the usage and allocation of heap memory by 0mq by about 50%. The
heap still slowly grew due to
> fragmentation, but with jemalloc the growth was about twice as slow as the
standard glibc malloc. This is a
> partial win.
> 
> Unfortunately, jemalloc didn't solve the problem.
> 
> Looking deeper into the issue, it looks like the long-term fix is to use a
SLAB allocator [1]. [...]
> 
> [1] http://en.wikipedia.org/wiki/Slab_allocation

jemalloc *is* a slab allocator, so you're unlikely to improve the situation much
by layering a sub-allocator on top of it.  More likely, this change would
actually increase fragmentation, for the same basic reason that using multiple
arenas in jemalloc increases fragmentation (available memory within a slab from
arena 0 is not available to a thread that is assigned to arena 1).

Thanks,
Jason




More information about the zeromq-dev mailing list