12345678910111213141516171819202122 |
- In principle, this memory allocator is roughly equivalent to Doug
- Lea's dlmalloc with fine-grained locking.
- malloc:
- Uses a freelist binned by chunk size, with a bitmap to optimize
- searching for the smallest non-empty bin which can satisfy an
- allocation. If no free chunks are available, it creates a new chunk of
- the requested size and attempts to merge it with any existing free
- chunk immediately below the newly created chunk.
- Whether the chunk was obtained from a bin or newly created, it's
- likely to be larger than the requested allocation. malloc always
- finishes its work by passing the new chunk to realloc, which will
- split it into two chunks and free the tail portion.
|