RFR: 8346470: Improve WriteBarrier JMH to have old-to-young refs
Thomas Schatzl
tschatzl at openjdk.org
Thu Mar 13 15:46:00 UTC 2025
On Wed, 12 Mar 2025 15:48:20 GMT, Eric Caspole <ecaspole at openjdk.org> wrote:
> Adds new cases based on the existing ones using an extra iteration setup to allocate into young gen, allowing to test old-to-young stores etc, where the existing code is all old-to-old.
>
> Here is a run on a standard OCI A1.160 with JDK 25:
>
> Benchmark Mode Cnt Score Error Units
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathNullLarge avgt 12 3448.826 ± 1.620 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathNullSmall avgt 12 63.740 ± 0.151 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathNullYoungLarge avgt 12 3448.353 ± 0.860 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathNullYoungSmall avgt 12 63.565 ± 0.132 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathOldToYoungLarge avgt 12 4476.390 ± 0.930 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathOldToYoungSmall avgt 12 73.517 ± 0.082 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathRealLarge avgt 12 3103.911 ± 2.079 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathRealSmall avgt 12 57.549 ± 0.512 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathYoungToOldLarge avgt 12 9587.762 ± 2.044 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathYoungToOldSmall avgt 12 157.244 ± 0.169 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathYoungToYoungLarge avgt 12 3103.191 ± 1.100 ns/op
> WriteBarrier.WithDefaultUnrolling.testArrayWriteBarrierFastPathYoungToYoungSmall avgt 12 57.392 ± 0.624 ns/op
> WriteBarrier.WithDefaultUnrolling.testFieldWriteBarrierFastPath avgt 12 2.668 ± 0.001 ns/op
> WriteBarrier.WithDefaultUnrolling.testFieldWriteBarrierFastPathYoungRef avgt 12 9.337 ± 0.001 ns/op
> WriteBarrier.WithoutUnrolling.testArrayWriteBarrierFastPathNullLarge avgt 12 3449.234 ± 1.840 ns/op
> WriteBarrier.WithoutUnrolling.testArrayWriteBarrierFastPathNullSmall avgt 12 63.720 ± 0.079 ns/op
> WriteBarrier.WithoutUnrolling.testArrayWriteBarrierFastPathNullYoungLarge avgt 12 3448.055 ± 0.665 ns/op
> WriteBarrier.WithoutUnrolling.testArrayWriteBarrierFastPathNullYoungSmall avgt 12 63.555 ± 0.116 ns/op
> WriteBarrier.Witho...
Some minor formatting issues...
test/micro/org/openjdk/bench/vm/compiler/WriteBarrier.java line 127:
> 125: @Setup(Level.Iteration)
> 126: public void setupIteration() {
> 127: // Reallocate each iteration to ensure they are in young gen
Suggestion:
// Reallocate target objects each iteration to ensure they are in young gen.
test/micro/org/openjdk/bench/vm/compiler/WriteBarrier.java line 185:
> 183: }
> 184: }
> 185:
Suggestion:
For consistent spacing between benchmarks.
-------------
Changes requested by tschatzl (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/24010#pullrequestreview-2682458764
PR Review Comment: https://git.openjdk.org/jdk/pull/24010#discussion_r1993806737
PR Review Comment: https://git.openjdk.org/jdk/pull/24010#discussion_r1993805710
More information about the hotspot-gc-dev
mailing list