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.
But that’s the big problem that needs to be solved, right? Taming concurrency for many-core CPUs.
-
-
As far as I know, there are 3 teams in the history of world who have successfully written scalable multi-core GCs. :)
-
Sun JVM team, Microsoft CLR team and Azul's JVM team. And I'm not really big on the kind of complexity that entails, and also not trying to use GC for the kind of problems where it would be necessary.
- 14 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.