A State of Java Elasticity
summary
Recent OpenJDK patches plus an injected agent let the JVM actually return unused heap to the OS, enabling vertical scaling and pay‑per‑use billing. The patch adds three tunables (e.g. G1 periodic GC interval, a load‑threshold check and a concurrent/full toggle) available since Java 12 with requested backport to 11. Tests run in containers and Kubernetes compare G1, Shenandoah, ZGC, Zing/C4, OpenJ9, CMS, Serial and Parallel: G1/Shenandoah/ZGC/Zing/OpenJ9 release memory; CMS/Serial need explicit full GCs; Parallel never releases it. Also work on softMaxHeapSize and elastic metaspace is ongoing.
AI-written summary · about
chapters (12)
- 0:00Introduction to Java elasticity
- 3:18Java memory usage problems
- 6:56Why Java elasticity matters
- 12:03JVM memory footprint breakdown
- 16:23Solving heap scaling inefficiency
- 23:39New GC parameters for elasticity
- 25:49Garbage collector elasticity tests
- 31:38Jakarta app memory behavior
- 32:22Resizing JVM on the fly
- 37:29Future of heap size limits
- 40:01Elastic metaspace plans
- 41:05Summary and Q&A
related talks
48mZGC: A Decade of Redefining Java Performance
51mJava 10/11 Memory Management and GC
47mJava inside Application Containers, System Containers and VMs
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
01h 32mBuilding and Tuning High Performance Java Platforms
51mJava Performance Update: From JDK 21 to JDK 25
52m-XX:+UseG1GC
18mFlexHeap: Dynamic I/O-Aware Heap Resizing for Managed Applications
