RFR: 8371571: Consolidate and enhance bulk memory segment ops benchmarks [v2]

Jorn Vernee jvernee at openjdk.org
Thu Nov 13 19:02:32 UTC 2025


On Thu, 13 Nov 2025 18:42:36 GMT, Per Minborg <pminborg at openjdk.org> wrote:

>> This PR proposes to consolidate and standardize the benchmarks related to the bulk operations for memory segments. 
>> 
>> All the benchmarks will now run with (heap|native)x(aligned|unaligned)x(intint|intlong|longlong) combinations.
>> 
>> It should be noted that with this change, the running time for the benchmarks would increase significantly.
>
> Per Minborg has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - Remove lingering comment
>  - Refactor and use long arrays
>  - Remove BulkOps

test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java line 122:

> 120:                     var s = MemorySegment.ofArray(baseArray);
> 121:                     srcSegment = Arena.ofAuto().allocateFrom(JAVA_LONG, s, JAVA_LONG, 0L, baseArray.length);
> 122:                     dstSegment = Arena.ofAuto().allocateFrom(JAVA_LONG, s, JAVA_LONG, 0L, baseArray.length);

You can use the other overload that accepts a long[]:

Suggestion:

                    srcSegment = Arena.ofAuto().allocateFrom(JAVA_LONG, baseArray);
                    dstSegment = Arena.ofAuto().allocateFrom(JAVA_LONG, baseArray);

test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java line 114:

> 112:             segment = switch (SegmentType.valueOf(segmentType)) {
> 113:                 case HEAP   -> heapSegment;
> 114:                 case NATIVE -> Arena.ofAuto().allocateFrom(JAVA_LONG, heapSegment, JAVA_LONG, 0L, baseArray.length);

Suggestion:

                case NATIVE -> Arena.ofAuto().allocateFrom(JAVA_LONG, baseArray);

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28260#discussion_r2524593943
PR Review Comment: https://git.openjdk.org/jdk/pull/28260#discussion_r2524598903


More information about the core-libs-dev mailing list