RFR: 8257774: G1: Trigger collect when free region count drops below threshold to prevent evacuation failures [v5]
Aditya Mandaleeka
adityam at openjdk.java.net
Thu May 13 02:42:00 UTC 2021
On Mon, 3 May 2021 17:18:05 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> Aditya Mandaleeka has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Remove temp comment.
>
> Fyi, I've been running this change through our performance test suite, and there are two notable differences in results in the Renaissance benchmark suite (http://renaissance.dev):
> * Renaissance-Neo4jAnalytics improves in scores (avg. runtime) by ~10%
> * Renaissance-Scrabble decreases in scores (avg. runtime) by ~10%
>
> For the latter more concerning result in renaissance-scrabble, we use the JMH wrappers which should be part of the benchmark suite (I think), and run jmh with `-t 1 -i 15 -wi 25 -f 10`.
>
> Original results:
>
> Result "org.renaissance.jdk.streams.JmhScrabble.runOperation":
> N = 150
> mean = 232.878 ±(99.9%) 5.846 ms/op
>
> Changes:
>
> Result "org.renaissance.jdk.streams.JmhScrabble.runOperation":
> N = 150
> mean = 265.658 ±(99.9%) 11.011 ms/op
>
>
> There are significant differences I can't explain right now. It may be due to (since we do not use any special VM options except logging) heap sizing or similar, but can you look into this a bit?
> I'll probably retry with a rebase on latest, maybe I screwed up with the builds. There is no proactive gc in this particular benchmark run, but I can see that e.g. neo4j has some, so builds should be correct.
@tschatzl Sorry for the delay, I was wrapped up in some other work and then wasn't feeling well the last couple of days.
I finally had a chance to run the Renaissance-Scrabble benchmark with and without this change, but I was not able to reproduce the delta you observed.
My "before" build is based on commit https://github.com/adityamandaleeka/jdk/commit/28c35aedd38c5d3b3053c737a65e0294e4606d65, and delivered the following result using the jmh flags you listed:
Result "org.renaissance.jdk.streams.JmhScrabble.runOperation":
N = 150
mean = 352.823 ±(99.9%) 3.996 ms/op
My "after" build is based on this PR of course and had the following result:
Result "org.renaissance.jdk.streams.JmhScrabble.runOperation":
N = 150
mean = 348.556 ±(99.9%) 3.397 ms/op
I also tried running the Neo4jAnalytics one but got "java.lang.RuntimeException: Benchmark 'neo4j-analytics' is not compatible with this JVM version!".
Looking at the benchmark sources, I found `@SupportsJvm("15")` which I guess is the reason, but I didn't want to change it and rebuild/re-run without first confirming whether or not you have any other changes in your version of the benchmark.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3143
More information about the hotspot-gc-dev
mailing list