d6742bfbd3
This caching allows for completely lock-free allocation/deallocation in the steady state, at the expense of likely increased memory use and fragmentation. Reduce the default number of arenas to 2*ncpus, since thread-specific caching typically reduces arena contention. Modify size class spacing to include ranges of 2^n-spaced, quantum-spaced, cacheline-spaced, and subpage-spaced size classes. The advantages are: fewer size classes, reduced false cacheline sharing, and reduced internal fragmentation for allocations that are slightly over 512, 1024, etc. Increase RUN_MAX_SMALL, in order to limit fragmentation for the subpage-spaced size classes. Add a size-->bin lookup table for small sizes to simplify translating sizes to size classes. Include a hard-coded constant table that is used unless custom size class spacing is specified at run time. Add the ability to disable tiny size classes at compile time via MALLOC_TINY. |
||
---|---|---|
.. | ||
isc | ||
fpmath.h | ||
libc_private.h | ||
namespace.h | ||
nscache.h | ||
nscachedcli.h | ||
nss_tls.h | ||
port_after.h | ||
port_before.h | ||
reentrant.h | ||
resolv_mt.h | ||
spinlock.h | ||
un-namespace.h |