ZGC Automatic Heap Sizing
summary
ZGC now auto-sizes heaps by starting at 16 MB, measuring allocation rate and GC CPU, and using a control loop to grow or shrink until a target GC overhead is reached; it defines a weak GC force to chase throughput and a strong GC force to bound machine memory (concerning at 20%, high at 8%, critical at 5%). The prototype uses major collections for global cost signals, does concurrent heap priming to avoid warmup penalties, and recovers neighbor memory in mixed workloads during evaluation.
AI-written summary · about
chapters (10)
- 0:00Introduction to ZGC auto-sizing
- 3:23Historical context and challenges
- 5:10Complexity of manual heap sizing
- 13:38The weak and strong GC forces
- 20:28Generation and memory pressure
- 22:41Thresholds and tuning policies
- 28:32Real-world adaptation scenarios
- 31:17Concurrent heap priming
- 33:10Evaluation and benchmark results
- 37:56Q&A and final remarks
related talks
39mZGC - Paving the GC On-Ramp
18mHeap Size Adjustment with CPU Control
48mZGC: A Decade of Redefining Java Performance
46mZGC: A Scalable Low-Latency Garbage Collector
39mZGC: The Next Generation Low-Latency Garbage Collector
34mGenerational ZGC and Beyond
19mZ Garbage Collector: The Next Generation
25mGarbage Collection Primer
