diff options
Diffstat (limited to '05/musl-0.6.0/src/malloc/DESIGN')
-rw-r--r-- | 05/musl-0.6.0/src/malloc/DESIGN | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/05/musl-0.6.0/src/malloc/DESIGN b/05/musl-0.6.0/src/malloc/DESIGN new file mode 100644 index 0000000..58b0523 --- /dev/null +++ b/05/musl-0.6.0/src/malloc/DESIGN @@ -0,0 +1,22 @@ + + +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. + + + |