Demystifying Garbage Collection in Java
summary
Overview of OpenJ9 GC choices and concrete tradeoffs including throughput versus pause time and memory overhead, with implementation details and numbers. Compares optput, gencon, cconscav, metronome and balanced region GC policies, describes right and snapshot write barriers, and shows metronome budgeting (example 30% GC budget per window). Describes arraylets for regionized large arrays and a Linux x86_64-only double mapping trick that maps a contiguous virtual view to chunked regions and boosts JNI/contiguous-array ops by ~30×, plus portability limits.
AI-written summary · about
chapters (13)
- 0:00Garbage collection in Java
- 1:40What garbage collection is
- 3:01Pros and cons of GC
- 3:43OpenJ9 GC algorithms
- 5:08Stop-the-world in OptThruPut
- 6:10Generational copying in GenCon
- 9:20Concurrent compaction in Concurrent Scavenge
- 12:48Real-time GC with Metronome
- 16:18Region-based GC in Balanced
- 20:27Large array optimization
- 23:58Future GC directions
- 27:51Choosing the right GC
- 30:19Q&A
related talks
52mGarbage collection for the humans
51mJava Garbage Collection - The Basics
01mThe evolution of Garbage Collection Algorithms in Java
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
44mGarbage Collector: How to Tame the Beast and Make It Your Best Ally
44mThe Fundamentals of Garbage Collector Performance
50mTrash Talk - Exploring the JVM memory management
52mUnderstanding Java Garbage Collection
