Low-latency, high-throughput garbage collection
11 days ago
- #garbage collection
- #low-latency
- #performance optimization
- A stop-the-world garbage collector (LXR) can achieve better tail latencies than concurrent garbage collectors.
- LXR uses temporal coarsening to amortize reference count tracking costs across pointer field modifications.
- Coalescing reduces unnecessary reference count updates by buffering changes and applying them at GC pauses.
- Deferral applies temporal coarsening to stack pointers, scanning stacks at the start of an RC epoch.
- LXR combines reference counting with SATB tracing to handle object graph cycles.
- Reference counts are stored in separate 2-bit allocations, with 'stuck' counts handled by SATB.
- LXR shows promising performance results but may face issues with cache misses during reference count updates.
- A proposed solution involves aggregation within the memory hierarchy to mitigate cache misses.