jasone a734052e9c 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
..
2006-04-04 02:57:49 +00:00
2006-04-04 02:57:49 +00:00
2008-04-02 08:33:42 +00:00
2006-04-04 02:57:49 +00:00
2006-04-04 02:57:49 +00:00
2008-04-22 06:44:11 +00:00
2006-04-04 02:57:49 +00:00
2006-04-04 02:57:49 +00:00
2006-04-04 02:57:49 +00:00