from 1.93: * Following is a brief list of features that distinguish this malloc * implementation: * * + Multiple arenas are used if there are multiple CPUs, which reduces lock * contention and cache sloshing. * * + Cache line sharing between arenas is avoided for internal data * structures. * * + Memory is managed in chunks, rather than as individual pages. * * + Allocations are region-based; internal region size is a discrete * multiple of a quantum that is appropriate for alignment constraints. * This applies to allocations that are up to half the chunk size. * * + Coalescence of regions is delayed in order to reduce overhead and * fragmentation. * * + realloc() always moves data, in order to reduce fragmentation. * * + Red-black trees are used to sort large regions. * * + Data structures for huge allocations are stored separately from * allocations, which reduces thrashing during low memory conditions. *