RFR: 8324334: Shenandoah: Improve end of process report

William Kemper wkemper at openjdk.org
Mon Jan 22 20:48:47 UTC 2024


Shenandoah emits a summary of collector statistics when the JVM process exits normally. These statistics do not include the number of cycles which did not require evacuation (we call these abbreviated or short-cut cycles).

The end-of-process report should include these shortcut cycles and also show the outcomes of various cycles as a percentage of the total number of cycles. This change also removes some unused variables/methods and has the heuristic lean on the collector policy for tracking consecutive degenerated cycles (rather than having both the heuristic and the collector policy tracking this).

Here is an example of the improved report:

    20 Completed GCs
     5 Successful Concurrent GCs (25.00%)
       2 invoked explicitly (40.00%)
       0 invoked implicitly (0.00%)
       1 abbreviated (20.00%)
    13 Degenerated GCs (65.00%)
       3 upgraded to Full GC (23.08%)
      13 caused by allocation failure (100.00%)
       0 abbreviated (0.00%)
        10 happened at Mark
         3 happened at Update References
     5 Full GCs (25.00%)
       0 invoked explicitly (0.00%)
       0 invoked implicitly (0.00%)
       2 caused by allocation failure (40.00%)
       3 upgraded from Degenerated GC (60.00%)

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

Commit messages:
 - Remove unused code, simplify consecutive degen tracking
 - Update policy and heuristics for full collections
 - Prepare end of process report improvements for upstream

Changes: https://git.openjdk.org/jdk/pull/17521/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17521&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8324334
  Stats: 129 lines in 11 files changed: 55 ins; 49 del; 25 mod
  Patch: https://git.openjdk.org/jdk/pull/17521.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17521/head:pull/17521

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


More information about the shenandoah-dev mailing list