RFR: 8365017: The SegmentBulkOperations::copy method can be improved using overlaps

Per Minborg pminborg at openjdk.org
Thu Aug 7 10:26:15 UTC 2025


On Thu, 7 Aug 2025 10:05:42 GMT, Per Minborg <pminborg at openjdk.org> wrote:

> This PR proposes to use overlapping memory areas in `SegmentBulkOperations::copy`similar ', similar to what is proposed for `SegmentBulkOperations::fill` in https://github.com/openjdk/jdk/pull/25383.

Copy-overlap

Base


Benchmark                              (ELEM_SIZE)  Mode  Cnt        Score        Error  Units
SegmentBulkCopy.nativeSegmentCopyJava            2  avgt   30        3.184 ±      0.060  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            3  avgt   30        3.162 ±      0.046  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            4  avgt   30        3.344 ±      0.072  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            5  avgt   30        3.310 ±      0.055  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            6  avgt   30        3.328 ±      0.076  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            7  avgt   30        3.289 ±      0.086  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            8  avgt   30        4.139 ±      0.067  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           12  avgt   30        4.709 ±      0.095  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           16  avgt   30        4.173 ±      0.086  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           24  avgt   30        4.239 ±      0.046  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           64  avgt   30        4.860 ±      0.091  ns/op
SegmentBulkCopy.nativeSegmentCopyJava          512  avgt   30       14.844 ±      0.326  ns/op
SegmentBulkCopy.nativeSegmentCopyJava         4096  avgt   30       90.611 ±      1.788  ns/op
SegmentBulkCopy.nativeSegmentCopyJava        32768  avgt   30      711.792 ±     13.991  ns/op
SegmentBulkCopy.nativeSegmentCopyJava       262144  avgt   30     7605.349 ±    101.069  ns/op
SegmentBulkCopy.nativeSegmentCopyJava      2097152  avgt   30    63458.190 ±   1754.102  ns/op
SegmentBulkCopy.nativeSegmentCopyJava     16777216  avgt   30   552339.850 ±  20632.233  ns/op
SegmentBulkCopy.nativeSegmentCopyJava    134217728  avgt   30  4780611.167 ± 195940.736  ns/op


Patch


Benchmark                              (ELEM_SIZE)  Mode  Cnt        Score       Error  Units
SegmentBulkCopy.nativeSegmentCopyJava            2  avgt   30        2.826 ±     0.018  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            3  avgt   30        2.821 ±     0.015  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            4  avgt   30        2.807 ±     0.010  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            5  avgt   30        2.805 ±     0.008  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            6  avgt   30        2.814 ±     0.020  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            7  avgt   30        2.805 ±     0.007  ns/op
SegmentBulkCopy.nativeSegmentCopyJava            8  avgt   30        2.805 ±     0.006  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           12  avgt   30        2.813 ±     0.023  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           16  avgt   30        4.236 ±     0.039  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           24  avgt   30        4.386 ±     0.038  ns/op
SegmentBulkCopy.nativeSegmentCopyJava           64  avgt   30        4.986 ±     0.018  ns/op
SegmentBulkCopy.nativeSegmentCopyJava          512  avgt   30       15.204 ±     0.200  ns/op
SegmentBulkCopy.nativeSegmentCopyJava         4096  avgt   30       91.607 ±     1.559  ns/op
SegmentBulkCopy.nativeSegmentCopyJava        32768  avgt   30      696.212 ±     2.265  ns/op
SegmentBulkCopy.nativeSegmentCopyJava       262144  avgt   30     7619.412 ±    60.848  ns/op
SegmentBulkCopy.nativeSegmentCopyJava      2097152  avgt   30    62158.186 ±   190.673  ns/op
SegmentBulkCopy.nativeSegmentCopyJava     16777216  avgt   30   544631.293 ±  5023.824  ns/op
SegmentBulkCopy.nativeSegmentCopyJava    134217728  avgt   30  4524477.559 ± 71723.200  ns/op

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

PR Comment: https://git.openjdk.org/jdk/pull/26672#issuecomment-3163484185


More information about the core-libs-dev mailing list