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

Markus Grönlund mgronlun at openjdk.org
Fri Aug 15 09:36:15 UTC 2025


On Mon, 11 Aug 2025 20:51:22 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: 5856dc34
Author:    Markus Grönlund <mgronlun at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/5856dc34c82de9f840be1dc28a9917224971491f
Stats:     350 lines in 11 files changed: 175 ins; 74 del; 101 mod

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

Reviewed-by: egahlin

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

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


More information about the hotspot-jfr-dev mailing list