Adaptive Threading: The Goldilocks Dilemma with GC Parallelism
summary
Eclipse OpenJ9 implements Adaptive Threading, a self‑tuning system that measures per‑cycle busy/stall ratio and uses a simple GC time model to project the optimal thread count (solve for the curve minimum). It runs in Eclipse OMR/OpenJ9 for the DefaultGenerational stop‑the‑world collector, was tested on bare metal 48‑core machines (naive “use all cores” gave 3–4× worse pauses), and yields about 10% average pause reduction across six JVMs and a 70% drop in one workload (14 ms → 6 ms). Enabled by default in recent IBM J9 builds.
AI-written summary · about
chapters (6)
- 0:00Start
- 9:19Inefficient Parallelism Overhead
- 12:38Pause Time
- 18:20Suboptimal vs Detrimental Parallelism
- 24:01Busy and Stall Times
- 28:07Adaptive Threading Model
related talks
33mBenchmarking JVM Warm-Up Performance
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
46mMastering GC: tame the beast and make it your best ally
48mThe Next Generation of Java Runtimes
36mA Dev Persepctive on Java Loom
48mJava 9 Performance
47mConcurrent thread-stack processing in the Z Garbage Collector
44mGarbage Collector: How to Tame the Beast and Make It Your Best Ally
