Jason Evans d6742bfbd3 Add thread-specific caching for small size classes, based on magazines.
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.
2008-08-27 02:00:53 +00:00
..
2007-12-02 22:21:30 +00:00
2008-08-25 06:08:22 +00:00
2006-09-17 21:27:35 +00:00
2008-05-04 22:24:40 +00:00
2007-06-10 19:06:09 +00:00
2008-05-15 15:28:18 +00:00
2008-08-06 17:11:12 +00:00
2007-04-09 01:45:30 +00:00
2008-08-08 00:21:27 +00:00
2008-05-09 02:28:52 +00:00