GC Tuning & Troubleshooting Crash Course
summary
Three concrete KPIs: latency, throughput, footprint guide tuning; GC logs (uploadable to GCeasy and similar tools) produce those metrics and root causes. Java has 12+ collectors and 600+ JVM flags, but basics suffice. Disabling explicit GC (or removing noisy JVM flags) cuts long pauses—examples show max pauses dropping from ~20–23s to ~660ms and averages near ~89ms. Memory audits find huge waste (one travel app wastes 52% of heap; 47,423 duplicate "USD" strings; many empty HashMaps). ZGC on Java 11 gives millisecond pauses.
AI-written summary · about
chapters (39)
- 0:00Introduction
- 1:45What is Garbage
- 2:44Garbage Collectors
- 3:46JVM Arguments
- 4:31Overwhelming
- 5:38Fundamentals
- 6:11Performance Indicators
- 12:52GC Log Files
- 14:08Configuring XMX
- 14:46XMX Limits
- 18:06KPIs
- 18:18Sample GC Log
- 24:38GC Log Formats
- 25:09IBM GC Log
- 27:24GC Log Analysis Report
- 29:28Start from the scratch
- 30:00Remove all arguments
- 31:18KPI
- 31:59GC Causes
- 33:31Recommendation
- 33:47System Dot GC
- 36:10Remove Explicit GC
- 37:06Creation Rate
- 38:23Memory Waste
- 38:43EEP Zero
- 40:09Inefficient Collections
- 41:29Typical Code
- 41:45Adding Only One Element
- 42:28Adding ArrayList
- 44:59Recommendations
- 45:28Lazy initialization
- 45:42Clear
- 45:54Null
- 46:30Garbage Collection Algorithm
- 47:35Sage Graph
- 47:58Possible Memory Leak
- 49:09Micro Matrix
- 49:26Out of Memory Error
- 50:46Garbage
related talks
39mG1GC Concepts and Performance Tuning
46mMastering GC: tame the beast and make it your best ally
25mGarbage Collection Primer
47mJVM Performance Engineering - Inside OpenJDK and the HotSpot Java Virtual Machine
53mCalibrate Garbage Collection on the Ground and Run Your Java App
59mGC Tuning Confessions of a Performance Engineer
50mTrash Talk - Exploring the JVM memory system
33mNo GC coding techniques for low latency Java
