Month 3 - Memory & Garbage Collection (Weeks 9–12)¶
The JVM's defining feature, and the cause of more 3 AM pages than any other subsystem. By the end of Month 3 you should be able to choose a GC, size a heap, read a GC log, and triage an OOM from a heap dump without panic.
Weeks¶
- Week 9 - Object Layout, Headers, and Cache Effects
- Week 10 - The Generational Hypothesis and the Modern GCs
- Week 11 - Heap Sizing, GOMEMLIMIT-Equivalents, and Container Awareness
- Week 12 - JFR, Heap Dumps, and Allocation Profiling
Month 3 Exit Criteria¶
You can:
- Predict the size of a Java object using JOL, including header and alignment.
- Pick a GC for a given workload and defend the choice with two concrete reasons.
- Read a GC log and an -Xlog:gc* output without consulting a cheat sheet.
- Budget every memory pool in a containerized JVM and explain RSS to a confused SRE.
- Drive JFR, async-profiler, and Eclipse MAT to diagnose a real production-shape memory problem.
You are now ready for Month 4 - concurrency, the Java Memory Model, and Project Loom.