RFR: 8365199: Use a set instead of a list as the intermediary Klass* storage to reduce typeset processing [v6]
Markus Grönlund
mgronlun at openjdk.org
Thu Aug 14 14:30:01 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
Markus Grönlund has updated the pull request incrementally with three additional commits since the last revision:
- merge error
- Merge branch '8365199' of github.com:mgronlun/jdk into 8365199
- use load factor instead of probe sequence
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/26733/files
- new: https://git.openjdk.org/jdk/pull/26733/files/9b9db9f2..07d9d1ab
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=26733&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=26733&range=04-05
Stats: 89 lines in 5 files changed: 32 ins; 23 del; 34 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