To support interior pointers in a 32-bit GC, divide the heap into fixed-size slabs suballocated into objects of a per-slab given size. Keep a table entry per chunk and then base(addr) = addr & ~((1 << tab[addr >> CHUNK_BITS]) - 1). For 4 MB chunks/4 GB heap, that's only 1 KB.
-
-
Sorry, which part? But my answer is probably "no idea" since parallel GC is a dark art. Given my tolerance for complexity, I'd probably just use stop-the-world.
-
But that’s the big problem that needs to be solved, right? Taming concurrency for many-core CPUs.
- 16 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.