Shenandoah 2 0: Now That We’ve Gotten the GC Pause Times Under Control, What’s Next?
summary
Region-based concurrent GC that adds an indirection pointer plus a read barrier and concurrent evacuation to move objects while mutators run, plus a small visualizer and a connection matrix that tracks region-to-region pointers so the collector can do stop‑the‑world or concurrent partial collections. Benchmarks show much lower pause totals (example: ~520 ms total vs ~4 s on an Elasticsearch index) and clear wins on LRU workloads (17 s vs 210 ms total GC pauses reported). Ships as a tech preview in RHEL 7.4/Fedora 24 via -XX:+UseShenandoahGC.
AI-written summary · about
chapters (14)
- 0:00Start
- 1:28Traditional Generational Collectors
- 6:28Java Thread wants to write to the object
- 8:20Results Elastic Search Benchmark
- 8:45Results: Elastic Search
- 10:00LRU Web Cache
- 11:24Generational Trees
- 11:38Results Generational
- 15:31Compacting, Region-Based Garbage Collection
- 20:16Shenandoah Connection matrix Regions
- 21:01Terminology
- 21:28Connection Matrix with Allocation Epoch
- 23:38Shenandoah 2.0
- 24:18More Information
related talks
48mShenandoah GC: The Next Generation
49mConcurrent Garbage Collectors: ZGC & Shenandoah
47mConcurrent Garbage Collectors: ZGC & Shenandoah
56mShenandoah: The Garbage Collector That Could
04mInterview with Aleksey Shipilev
01h 07mShenandoah – ultra-low Pause Time Garbage Collector #underthehood
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
15mThree flavors of generational GC: G1, ZGC, Shenandoah
