RFR: 8354674: AArch64: Intrinsify Unsafe::setMemory [v2]

Andrew Haley aph at openjdk.org
Tue May 13 16:27:41 UTC 2025


On Mon, 12 May 2025 09:39:48 GMT, Andrew Haley <aph at openjdk.org> wrote:

> > Looking at the improvements made, I suggest we also change (in `SegmentBulkOperations`):
> > ```
> > private static final int NATIVE_THRESHOLD_FILL = powerOfPropertyOr("fill", Architecture.isAARCH64() ? 18 : 5); 
> > ```
> > to
> > ```
> >  private static final int NATIVE_THRESHOLD_FILL = powerOfPropertyOr("fill",  5);
> > ```
> 
> Possibly so, yes, but I'm still looking at the reasons for the differences.

OK, I've done that. Numbers below, and I think that makes the cut between Java code and the intrinsic at the right place.


Benchmark                           (aligned)  (size)  Mode  Cnt  Score   Error  Units
MemorySegmentFillUnsafe.panama           true       1  avgt   10  1.522 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama           true       2  avgt   10  1.385 ± 0.003  ns/op
MemorySegmentFillUnsafe.panama           true       3  avgt   10  1.387 ± 0.003  ns/op
MemorySegmentFillUnsafe.panama           true       4  avgt   10  1.520 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama           true       5  avgt   10  1.530 ± 0.007  ns/op
MemorySegmentFillUnsafe.panama           true       6  avgt   10  1.523 ± 0.003  ns/op
MemorySegmentFillUnsafe.panama           true       7  avgt   10  1.538 ± 0.010  ns/op
MemorySegmentFillUnsafe.panama           true       8  avgt   10  1.663 ± 0.014  ns/op
MemorySegmentFillUnsafe.panama           true      15  avgt   10  1.940 ± 0.005  ns/op
MemorySegmentFillUnsafe.panama           true      16  avgt   10  1.812 ± 0.007  ns/op
MemorySegmentFillUnsafe.panama           true      63  avgt   10  2.332 ± 0.005  ns/op
MemorySegmentFillUnsafe.panama           true      64  avgt   10  2.157 ± 0.009  ns/op
MemorySegmentFillUnsafe.panama           true     255  avgt   10  3.857 ± 0.057  ns/op
MemorySegmentFillUnsafe.panama           true     256  avgt   10  3.506 ± 0.015  ns/op
MemorySegmentFillUnsafe.panama          false       1  avgt   10  1.522 ± 0.005  ns/op
MemorySegmentFillUnsafe.panama          false       2  avgt   10  1.384 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama          false       3  avgt   10  1.386 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama          false       4  avgt   10  1.520 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama          false       5  avgt   10  1.528 ± 0.009  ns/op
MemorySegmentFillUnsafe.panama          false       6  avgt   10  1.525 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama          false       7  avgt   10  1.533 ± 0.003  ns/op
MemorySegmentFillUnsafe.panama          false       8  avgt   10  1.665 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama          false      15  avgt   10  1.941 ± 0.004  ns/op
MemorySegmentFillUnsafe.panama          false      16  avgt   10  1.811 ± 0.008  ns/op
MemorySegmentFillUnsafe.panama          false      63  avgt   10  2.332 ± 0.006  ns/op
MemorySegmentFillUnsafe.panama          false      64  avgt   10  2.152 ± 0.005  ns/op
MemorySegmentFillUnsafe.panama          false     255  avgt   10  5.040 ± 0.041  ns/op
MemorySegmentFillUnsafe.panama          false     256  avgt   10  4.859 ± 0.040  ns/op

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

PR Comment: https://git.openjdk.org/jdk/pull/25147#issuecomment-2877178492


More information about the core-libs-dev mailing list