From 9bc8a11afeed3569736b89754012e3ca22ee10f6 Mon Sep 17 00:00:00 2001 From: pommicket Date: Sun, 20 Feb 2022 13:18:21 -0800 Subject: conclusion --- 05/musl-0.6.0/src/malloc/DESIGN | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 05/musl-0.6.0/src/malloc/DESIGN (limited to '05/musl-0.6.0/src/malloc/DESIGN') 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. + + + -- cgit v1.2.3