“Show Me the Garbage!”, Garbage Collection a Friend or a Foe
summary
A small benchmark and pause detector (GitHub) allocates 500 MB/s alloc rate against a 4 GB heap and measures pauses with VisualVM and JHiccup plus GC logs parsed by GCViewer/GCEasy. Results show concrete differences: G1 ≈300 ms per iteration, Shenandoah ≈800 ms, ZGC ≈352 ms, Parallel ≈434 ms. ZGC needs ~25% more RAM (no compressed oops) and stalls under low headroom unless heap grows to 8 GB; more memory often fixes throughput but not pause risks.
AI-written summary · about
chapters (25)
- 0:00Introduction and speaker background
- 2:13Birth and death of objects
- 3:18Memory management basics
- 5:24Automatic reference counting limits
- 6:05Tracing garbage collectors explained
- 7:09Key performance indicators for GC
- 8:35Heap, roots, and reachable objects
- 10:02Garbage collection algorithms overview
- 12:52Mark-compact and copy collectors
- 15:47Generational garbage collection
- 18:32Garbage collector properties
- 22:47Modern JVM garbage collectors
- 28:51Legacy garbage collectors
- 29:14Practical garbage collection monitoring
- 33:04Tools for analyzing GC logs
- 34:30Memory graphs and visual tools
- 34:50Detecting pauses with JHiccup
- 36:15Estimating live set size
- 37:43Common problems demo setup
- 38:45Benchmarking different collectors
- 41:56Latency and throughput trade-offs
- 43:44Solving GC overhead and latency issues
- 44:29Fragmentation and humongous objects
- 46:00Generational overflow problems
- 47:25Homework and summary
related talks
01h 32mUnderstanding Java Garbage Collection and what you can do about it
49mConcurrent Garbage Collectors: ZGC & Shenandoah
44mGarbage Collector: How to Tame the Beast and Make It Your Best Ally
25mGarbage Collection Primer
50mGarbage Collection in Java: The progress since JDK 8
50mTrash Talk - Exploring the JVM memory system
45mJava Garbage Collectors’ Current Performance Impact
01mThe evolution of Garbage Collection Algorithms in Java
