G1, ZGC, Shenandoah… With All These GCs in Java, Which One Do I Choose?
summary
A tour of Java garbage collectors from Java’s origins to 2026, explaining why GC is needed and why it’s still a hard problem. It reviews specific collectors (G1, ZGC, Shenandoah and others), their design trade-offs, generation vs. non-generation behavior, performance effects like tail-latency reductions, and gives concrete guidance on which GC to choose for different projects, applications and environments.
AI-written summary · about
chapters (17)
- 0:00Java GC complexity
- 5:43Java origins and GC
- 9:18Generational hypothesis
- 11:23Serial GC limits
- 18:43Serial GC stop-the-world
- 19:26Parallel GC for performance
- 21:33CMS arrival
- 22:57G1 GC region approach
- 28:56G1 GC latency limits
- 30:26Ultra-low latency GCs
- 33:55ZGC vs Shenandoah
- 36:46Choosing a GC in 2026
- 37:30Epsilon GC limits
- 38:57GraalVM GC limits
- 40:01Future GC improvements
- 42:06GC performance tips
- 43:55Q&A
related talks
45mNew GC Algorithms in Java
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
52mGarbage collection for the humans
35mJava: Memory cleanup in Java 9–14
25mGarbage Collection Primer
16mGarbage Collectors: Battle Royale
50mTrash Talk - Exploring the JVM memory management
44mGarbage Collector: How to Tame the Beast and Make It Your Best Ally
