3 ms·
Via https://twitter.com/silentbicycle/status/751574435199672321 https://twitter.com/silentbicycle/status/751574435199672321, I found http://arxiv.org/abs/1601.0
by twotwotwo 10y ago
Via https://twitter.com/silentbicycle/status/751574435199672321 https://twitter.com/silentbicycle/status/751574435199672321, I found http://arxiv.org/abs/1601.03116 http://arxiv.org/abs/1601.03116, which talks about how they do the realtime GC stuff.
An interesting bit for me is Section 4's way of handling fragmentation. They have a hard max size on allocations: large objects are linked lists and arrays are managed as trees (32-ary trees, so lookups are often not super deep). There's an obvious price in locality and pointer-chasing, but if consistent pauseless GC (and not throughput) is your goal, never having to compact to make space for a big allocation is neat.