downsides of arena allocation ============================= - cannot use "dead" space after variables (otherwise only accessible through sbrk). - to avoid having to pass around an arena pointer, we need to have metadata at the beginning of each 4K page (or whatever the minimum size of an arena block is). - related: large arrays. these would need to be splitted, even if there is enough contiguous memory. - de-allocation of individual objects is tricky. it *can* be done, but it can only be filled with data from the same arena, and requires an additional check to see if there is a free hole of memory and if it is large enough. - threads cannot share an arena (unless it is "closed" for all but one thread) i.e. cannot share for writing