aboutsummaryrefslogtreecommitdiffhomepage
path: root/notes/arena_downsides.txt
blob: 0eedd64d612604aa308f1905c018993d99b812eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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