RFR: 8307348 - Parallelize heap walk for ObjectCount(AfterGC) JFR event collection
olivergillespie
duke at openjdk.org
Wed May 3 11:18:29 UTC 2023
ObjectCount(AfterGC) event does a full single-threaded heap scan at a safepoint. After https://bugs.openjdk.org/browse/JDK-8215624, it is trivial to use the parallel version of the heap scan, reducing the time spent at the safepoint, and thus reducing the overhead of this event.
The performance improvement is obvious, but just for confirmation, on my 16-core host, at around 1GB occupancy:
Before: 770ms ( [3.059s][debug][gc,phases ] GC(13) Report Object Count 770.317ms )
After: 92ms ( [2.335s][debug][gc,phases ] GC(13) Report Object Count 91.742ms )
Question 1: Should this be the default behaviour for populate_table (use the number active workers as the parallelism, if nothing else specified)?
Question 2: Is active_workers the correct value to use here? Or is max_workers more appropriate?
-------------
Commit messages:
- 8307348 - Parallelize heap walk for ObjectCount(AfterGC) JFR event collection
Changes: https://git.openjdk.org/jdk/pull/13774/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13774&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8307348
Stats: 6 lines in 1 file changed: 5 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/13774.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13774/head:pull/13774
PR: https://git.openjdk.org/jdk/pull/13774
More information about the hotspot-gc-dev
mailing list