Site seems hugged to death<p>archive: <a href="http://web.archive.org/web/20231129055356/https://jackfromeast.site/2023-01/understand-the-heap-a-beautiful-mess.html" rel="nofollow noreferrer">http://web.archive.org/web/20231129055356/https://jackfromea...</a>
Not so much the author's fault, but there's a bit of confusing terminology around the meaning of "pool" in memory allocator literature in general, and this article in particular.<p>In this article, they say:<p>> Pools ... involve: pre-allocating ... core resources that are frequently used in a program, which are self-managed by the program ...<p>This (IME) most often means some sort of "object pool," with fixed-size objects and O(1) allocation and de-allocation.<p>And also:<p>> a memory pool pre-allocates a large block of memory ... When the programmer releases the memory, it is returned to the pool ... and is merged with surrounding free memory blocks as much as possible.<p>This clearly is <i>not</i> referring to the object pool concept.
In the article, the O(1) freelist approach falls under the "bins" nomenclature.<p>In general, memory allocator terminology is pretty messy, varying between sources and implementations. Words like "arena allocator" and "stack allocator" seem frequently abused/blurred, made worse by the fact that one can nest allocators in each other — eg: a stack allocator which allocates from an arena, but sometimes referred to one or the other interchangeably.<p>I had a bit of a rollercoaster ride trying to make heads and tails of it all when I was researching these things.