RFR: 8312116: JDK GenShen: make instantaneous allocation rate triggers more timely

Kelvin Nilsen kdnilsen at openjdk.org
Mon Jan 5 19:31:14 UTC 2026


After studying large numbers of GC logs with degenerated cycles that have resulted from "late" triggers, we propose the following general improvements:

1. Track trends in GC times rather than always using the average GC time plus standard deviation.  In many situations, GC times trend upward due to, for example, increasing amounts of live data that must be marked as a workload builds up its working set of memory.
2. Sample allocation rates more frequently than once every 100 ms.
3. Track trends in allocation rates.  In some situations, the allocation rate trends upwards due to, for example, the start of a new phase of execution or a spike in client workload.
4. When we detect acceleration of workload, predict consumption of memory based on accelerated allocation rates rather than assuming constant allocation rate.

-------------

Commit messages:
 - Change type of command-line args
 - fix white space
 - Add override to virtual methods
 - Fix race between allocation reporting and querying
 - add debug instrumentation
 - Merge remote-tracking branch 'jdk/master' into accelerated-triggers
 - add instrumentation and fix bugs
 - Merge remote-tracking branch 'jdk/master' into accelerated-triggers
 - some debug instrumentation
 - Merge remote-tracking branch 'origin/accelerated-triggers' into accelerated-triggers-gh
 - ... and 49 more: https://git.openjdk.org/jdk/compare/400d8cfb...c7046b5c

Changes: https://git.openjdk.org/jdk/pull/29039/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29039&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8312116
  Stats: 1529 lines in 26 files changed: 1423 ins; 34 del; 72 mod
  Patch: https://git.openjdk.org/jdk/pull/29039.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29039/head:pull/29039

PR: https://git.openjdk.org/jdk/pull/29039


More information about the hotspot-gc-dev mailing list