RFR: 8365199: Use a set instead of a list as the intermediary Klass* storage to reduce typeset processing

Markus Grönlund mgronlun at openjdk.org
Mon Aug 11 20:58:49 UTC 2025


Greetings,

This change set is a performance improvement to speed up JFR typeset processing.

It accomplishes this by using a set instead of a list as the intermediary Klass* storage.

Further, the existing JfrSet implementation (currently backed by a linked-list ResizeableResourceHashTable) is optimized to use instead a slimmed open-addressing implementation, premised on the invariant that our sets are key sets. 

Running the test program attached to the JIRA issue results in a 100% performance improvement in total running time (by reducing the work set of Klass: es being processed by the JFR Recorder Thread).

Testing: jdk_jfr, stress tests

Thanks
Markus

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

Commit messages:
 - adjustment
 - 8365199

Changes: https://git.openjdk.org/jdk/pull/26733/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26733&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8365199
  Stats: 358 lines in 11 files changed: 176 ins; 86 del; 96 mod
  Patch: https://git.openjdk.org/jdk/pull/26733.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26733/head:pull/26733

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


More information about the hotspot-jfr-dev mailing list