RFR: 8310159: Bulk copy with Unsafe::arrayCopy is slower compared to memcpy [v4]
Steve Dohrmann
duke at openjdk.org
Thu Nov 16 21:37:37 UTC 2023
On Thu, 16 Nov 2023 05:43:11 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> src/hotspot/cpu/x86/stubGenerator_x86_64_arraycopy.cpp line 585:
>>
>>> 583: __ shlq(temp2, shift);
>>> 584: __ cmpq(temp2, large_threshold);
>>> 585: __ jcc(Assembler::greaterEqual, L_copy_large);
>>
>> Hi @steveatgh , Can you please share the performance number of other Array copy JMH micros in following directoy https://github.com/openjdk/jdk/tree/master/test/micro/org/openjdk/bench/java/lang
>
> I will still request you to run BM in above path, we may see performance dips for sizes after special cases due to additional comparisons.
Here are the results on my Ubuntu laptop running at 3 GHz
// Baseline
Benchmark (length) (size) Mode Cnt Score Error Units
ArrayCopyObject.conjoint_micro N/A 31 thrpt 15 77157.933 ? 1977.467 ops/ms
ArrayCopyObject.conjoint_micro N/A 63 thrpt 15 58329.157 ? 1667.574 ops/ms
ArrayCopyObject.conjoint_micro N/A 127 thrpt 15 49322.065 ? 2332.342 ops/ms
ArrayCopyObject.conjoint_micro N/A 2047 thrpt 15 13895.531 ? 239.300 ops/ms
ArrayCopyObject.conjoint_micro N/A 4095 thrpt 15 7926.854 ? 201.238 ops/ms
ArrayCopyObject.conjoint_micro N/A 8191 thrpt 15 4289.582 ? 31.734 ops/ms
ArrayCopyObject.disjoint_micro N/A 31 thrpt 15 74711.699 ? 2463.378 ops/ms
ArrayCopyObject.disjoint_micro N/A 63 thrpt 15 65229.586 ? 1329.809 ops/ms
ArrayCopyObject.disjoint_micro N/A 127 thrpt 15 54330.794 ? 2372.868 ops/ms
ArrayCopyObject.disjoint_micro N/A 2047 thrpt 15 9338.340 ? 132.987 ops/ms
ArrayCopyObject.disjoint_micro N/A 4095 thrpt 15 5035.553 ? 109.679 ops/ms
ArrayCopyObject.disjoint_micro N/A 8191 thrpt 15 1192.069 ? 10.765 ops/ms
ArrayCopy.arrayCopy N/A N/A avgt 15 1.356 ? 0.029 ns/op
ArrayCopy.arrayCopyChar N/A N/A avgt 15 4.368 ? 0.038 ns/op
ArrayCopy.arrayCopyCharNonConst N/A N/A avgt 15 4.749 ? 0.113 ns/op
ArrayCopy.arrayCopyLocalArray N/A N/A avgt 15 0.503 ? 0.001 ns/op
ArrayCopy.arrayCopyNonConst N/A N/A avgt 15 1.955 ? 0.108 ns/op
ArrayCopy.arrayCopyObject N/A N/A avgt 15 22.403 ? 0.563 ns/op
ArrayCopy.arrayCopyObjectNonConst N/A N/A avgt 15 25.188 ? 0.484 ns/op
ArrayCopy.arrayCopyObjectSameArraysBackward N/A N/A avgt 15 17.785 ? 0.781 ns/op
ArrayCopy.arrayCopyObjectSameArraysForward N/A N/A avgt 15 17.347 ? 0.126 ns/op
ArrayCopy.copyLoop N/A N/A avgt 15 5.189 ? 0.100 ns/op
ArrayCopy.copyLoopLocalArray N/A N/A avgt 15 3.685 ? 0.085 ns/op
ArrayCopy.copyLoopNonConst N/A N/A avgt 15 5.436 ? 0.040 ns/op
ArrayCopyAligned.testByte 1 N/A avgt 15 2.366 ? 0.028 ns/op
ArrayCopyAligned.testByte 3 N/A avgt 15 2.381 ? 0.063 ns/op
ArrayCopyAligned.testByte 5 N/A avgt 15 2.362 ? 0.035 ns/op
ArrayCopyAligned.testByte 10 N/A avgt 15 2.364 ? 0.048 ns/op
ArrayCopyAligned.testByte 20 N/A avgt 15 2.353 ? 0.026 ns/op
ArrayCopyAligned.testByte 70 N/A avgt 15 5.214 ? 0.082 ns/op
ArrayCopyAligned.testByte 150 N/A avgt 15 6.081 ? 0.140 ns/op
ArrayCopyAligned.testByte 300 N/A avgt 15 9.399 ? 0.262 ns/op
ArrayCopyAligned.testByte 600 N/A avgt 15 12.710 ? 0.149 ns/op
ArrayCopyAligned.testByte 1200 N/A avgt 15 21.873 ? 0.237 ns/op
ArrayCopyAligned.testChar 1 N/A avgt 15 2.349 ? 0.014 ns/op
ArrayCopyAligned.testChar 3 N/A avgt 15 2.360 ? 0.041 ns/op
ArrayCopyAligned.testChar 5 N/A avgt 15 2.359 ? 0.021 ns/op
ArrayCopyAligned.testChar 10 N/A avgt 15 2.369 ? 0.042 ns/op
ArrayCopyAligned.testChar 20 N/A avgt 15 5.101 ? 0.080 ns/op
ArrayCopyAligned.testChar 70 N/A avgt 15 5.961 ? 0.096 ns/op
ArrayCopyAligned.testChar 150 N/A avgt 15 9.321 ? 0.221 ns/op
ArrayCopyAligned.testChar 300 N/A avgt 15 13.473 ? 0.282 ns/op
ArrayCopyAligned.testChar 600 N/A avgt 15 20.941 ? 0.211 ns/op
ArrayCopyAligned.testChar 1200 N/A avgt 15 33.840 ? 0.490 ns/op
ArrayCopyAligned.testInt 1 N/A avgt 15 4.391 ? 0.042 ns/op
ArrayCopyAligned.testInt 3 N/A avgt 15 4.417 ? 0.063 ns/op
ArrayCopyAligned.testInt 5 N/A avgt 15 4.425 ? 0.047 ns/op
ArrayCopyAligned.testInt 10 N/A avgt 15 5.058 ? 0.084 ns/op
ArrayCopyAligned.testInt 20 N/A avgt 15 5.083 ? 0.062 ns/op
ArrayCopyAligned.testInt 70 N/A avgt 15 8.773 ? 0.200 ns/op
ArrayCopyAligned.testInt 150 N/A avgt 15 12.221 ? 0.212 ns/op
ArrayCopyAligned.testInt 300 N/A avgt 15 21.785 ? 0.160 ns/op
ArrayCopyAligned.testInt 600 N/A avgt 15 37.937 ? 0.178 ns/op
ArrayCopyAligned.testInt 1200 N/A avgt 15 54.911 ? 0.943 ns/op
ArrayCopyAligned.testLong 1 N/A avgt 15 4.420 ? 0.075 ns/op
ArrayCopyAligned.testLong 3 N/A avgt 15 4.362 ? 0.010 ns/op
ArrayCopyAligned.testLong 5 N/A avgt 15 5.030 ? 0.018 ns/op
ArrayCopyAligned.testLong 10 N/A avgt 15 5.112 ? 0.074 ns/op
ArrayCopyAligned.testLong 20 N/A avgt 15 5.847 ? 0.151 ns/op
ArrayCopyAligned.testLong 70 N/A avgt 15 11.349 ? 0.411 ns/op
ArrayCopyAligned.testLong 150 N/A avgt 15 17.721 ? 0.360 ns/op
ArrayCopyAligned.testLong 300 N/A avgt 15 27.205 ? 0.427 ns/op
ArrayCopyAligned.testLong 600 N/A avgt 15 44.129 ? 0.555 ns/op
ArrayCopyAligned.testLong 1200 N/A avgt 15 75.388 ? 0.774 ns/op
ArrayCopyUnalignedBoth.testByte 1 N/A avgt 15 2.355 ? 0.026 ns/op
ArrayCopyUnalignedBoth.testByte 3 N/A avgt 15 2.361 ? 0.046 ns/op
ArrayCopyUnalignedBoth.testByte 5 N/A avgt 15 2.357 ? 0.032 ns/op
ArrayCopyUnalignedBoth.testByte 10 N/A avgt 15 2.385 ? 0.047 ns/op
ArrayCopyUnalignedBoth.testByte 20 N/A avgt 15 2.355 ? 0.028 ns/op
ArrayCopyUnalignedBoth.testByte 70 N/A avgt 15 5.218 ? 0.095 ns/op
ArrayCopyUnalignedBoth.testByte 150 N/A avgt 15 6.038 ? 0.112 ns/op
ArrayCopyUnalignedBoth.testByte 300 N/A avgt 15 9.848 ? 0.218 ns/op
ArrayCopyUnalignedBoth.testByte 600 N/A avgt 15 13.090 ? 0.170 ns/op
ArrayCopyUnalignedBoth.testByte 1200 N/A avgt 15 20.538 ? 0.270 ns/op
ArrayCopyUnalignedBoth.testChar 1 N/A avgt 15 2.374 ? 0.043 ns/op
ArrayCopyUnalignedBoth.testChar 3 N/A avgt 15 2.351 ? 0.011 ns/op
ArrayCopyUnalignedBoth.testChar 5 N/A avgt 15 2.352 ? 0.017 ns/op
ArrayCopyUnalignedBoth.testChar 10 N/A avgt 15 2.349 ? 0.008 ns/op
ArrayCopyUnalignedBoth.testChar 20 N/A avgt 15 5.070 ? 0.041 ns/op
ArrayCopyUnalignedBoth.testChar 70 N/A avgt 15 6.052 ? 0.197 ns/op
ArrayCopyUnalignedBoth.testChar 150 N/A avgt 15 9.861 ? 0.226 ns/op
ArrayCopyUnalignedBoth.testChar 300 N/A avgt 15 13.635 ? 0.136 ns/op
ArrayCopyUnalignedBoth.testChar 600 N/A avgt 15 20.967 ? 0.164 ns/op
ArrayCopyUnalignedBoth.testChar 1200 N/A avgt 15 36.465 ? 0.140 ns/op
ArrayCopyUnalignedBoth.testInt 1 N/A avgt 15 4.440 ? 0.064 ns/op
ArrayCopyUnalignedBoth.testInt 3 N/A avgt 15 4.446 ? 0.089 ns/op
ArrayCopyUnalignedBoth.testInt 5 N/A avgt 15 4.417 ? 0.058 ns/op
ArrayCopyUnalignedBoth.testInt 10 N/A avgt 15 5.044 ? 0.054 ns/op
ArrayCopyUnalignedBoth.testInt 20 N/A avgt 15 5.127 ? 0.100 ns/op
ArrayCopyUnalignedBoth.testInt 70 N/A avgt 15 8.399 ? 0.077 ns/op
ArrayCopyUnalignedBoth.testInt 150 N/A avgt 15 12.252 ? 0.203 ns/op
ArrayCopyUnalignedBoth.testInt 300 N/A avgt 15 23.253 ? 0.252 ns/op
ArrayCopyUnalignedBoth.testInt 600 N/A avgt 15 37.990 ? 0.456 ns/op
ArrayCopyUnalignedBoth.testInt 1200 N/A avgt 15 57.030 ? 0.146 ns/op
ArrayCopyUnalignedBoth.testLong 1 N/A avgt 15 4.360 ? 0.014 ns/op
ArrayCopyUnalignedBoth.testLong 3 N/A avgt 15 4.391 ? 0.080 ns/op
ArrayCopyUnalignedBoth.testLong 5 N/A avgt 15 5.060 ? 0.071 ns/op
ArrayCopyUnalignedBoth.testLong 10 N/A avgt 15 5.117 ? 0.109 ns/op
ArrayCopyUnalignedBoth.testLong 20 N/A avgt 15 5.841 ? 0.115 ns/op
ArrayCopyUnalignedBoth.testLong 70 N/A avgt 15 11.700 ? 0.655 ns/op
ArrayCopyUnalignedBoth.testLong 150 N/A avgt 15 22.002 ? 0.408 ns/op
ArrayCopyUnalignedBoth.testLong 300 N/A avgt 15 36.020 ? 0.356 ns/op
ArrayCopyUnalignedBoth.testLong 600 N/A avgt 15 45.212 ? 0.194 ns/op
ArrayCopyUnalignedBoth.testLong 1200 N/A avgt 15 75.720 ? 0.607 ns/op
ArrayCopyUnalignedDst.testByte 1 N/A avgt 15 2.361 ? 0.037 ns/op
ArrayCopyUnalignedDst.testByte 10 N/A avgt 15 2.353 ? 0.025 ns/op
ArrayCopyUnalignedDst.testByte 150 N/A avgt 15 6.145 ? 0.170 ns/op
ArrayCopyUnalignedDst.testByte 1200 N/A avgt 15 19.825 ? 0.231 ns/op
ArrayCopyUnalignedDst.testChar 1 N/A avgt 15 2.366 ? 0.053 ns/op
ArrayCopyUnalignedDst.testChar 10 N/A avgt 15 2.375 ? 0.058 ns/op
ArrayCopyUnalignedDst.testChar 150 N/A avgt 15 9.274 ? 0.237 ns/op
ArrayCopyUnalignedDst.testChar 1200 N/A avgt 15 36.327 ? 0.086 ns/op
ArrayCopyUnalignedDst.testInt 1 N/A avgt 15 4.400 ? 0.023 ns/op
ArrayCopyUnalignedDst.testInt 10 N/A avgt 15 5.071 ? 0.073 ns/op
ArrayCopyUnalignedDst.testInt 150 N/A avgt 15 13.229 ? 0.172 ns/op
ArrayCopyUnalignedDst.testInt 1200 N/A avgt 15 56.467 ? 0.384 ns/op
ArrayCopyUnalignedDst.testLong 1 N/A avgt 15 4.421 ? 0.107 ns/op
ArrayCopyUnalignedDst.testLong 10 N/A avgt 15 5.074 ? 0.063 ns/op
ArrayCopyUnalignedDst.testLong 150 N/A avgt 15 20.605 ? 0.602 ns/op
ArrayCopyUnalignedDst.testLong 1200 N/A avgt 15 74.206 ? 0.294 ns/op
ArrayCopyUnalignedSrc.testByte 1 N/A avgt 15 2.352 ? 0.024 ns/op
ArrayCopyUnalignedSrc.testByte 10 N/A avgt 15 2.352 ? 0.028 ns/op
ArrayCopyUnalignedSrc.testByte 150 N/A avgt 15 6.156 ? 0.118 ns/op
ArrayCopyUnalignedSrc.testByte 1200 N/A avgt 15 16.755 ? 0.046 ns/op
ArrayCopyUnalignedSrc.testChar 1 N/A avgt 15 2.363 ? 0.031 ns/op
ArrayCopyUnalignedSrc.testChar 10 N/A avgt 15 2.367 ? 0.045 ns/op
ArrayCopyUnalignedSrc.testChar 150 N/A avgt 15 9.318 ? 0.157 ns/op
ArrayCopyUnalignedSrc.testChar 1200 N/A avgt 15 31.355 ? 0.276 ns/op
ArrayCopyUnalignedSrc.testInt 1 N/A avgt 15 4.428 ? 0.063 ns/op
ArrayCopyUnalignedSrc.testInt 10 N/A avgt 15 5.072 ? 0.089 ns/op
ArrayCopyUnalignedSrc.testInt 150 N/A avgt 15 12.163 ? 0.116 ns/op
ArrayCopyUnalignedSrc.testInt 1200 N/A avgt 15 54.206 ? 0.374 ns/op
ArrayCopyUnalignedSrc.testLong 1 N/A avgt 15 4.401 ? 0.052 ns/op
ArrayCopyUnalignedSrc.testLong 10 N/A avgt 15 5.058 ? 0.034 ns/op
ArrayCopyUnalignedSrc.testLong 150 N/A avgt 15 20.391 ? 0.417 ns/op
ArrayCopyUnalignedSrc.testLong 1200 N/A avgt 15 74.467 ? 0.809 ns/op
// PR with assert fix
Benchmark (length) (size) Mode Cnt Score Error Units
ArrayCopyObject.conjoint_micro N/A 31 thrpt 15 79910.859 ? 869.372 ops/ms
ArrayCopyObject.conjoint_micro N/A 63 thrpt 15 62631.951 ? 1440.065 ops/ms
ArrayCopyObject.conjoint_micro N/A 127 thrpt 15 51043.300 ? 761.226 ops/ms
ArrayCopyObject.conjoint_micro N/A 2047 thrpt 15 14141.790 ? 164.714 ops/ms
ArrayCopyObject.conjoint_micro N/A 4095 thrpt 15 8024.056 ? 53.310 ops/ms
ArrayCopyObject.conjoint_micro N/A 8191 thrpt 15 4318.074 ? 6.441 ops/ms
ArrayCopyObject.disjoint_micro N/A 31 thrpt 15 78245.690 ? 1697.277 ops/ms
ArrayCopyObject.disjoint_micro N/A 63 thrpt 15 61873.747 ? 806.972 ops/ms
ArrayCopyObject.disjoint_micro N/A 127 thrpt 15 55457.908 ? 2091.739 ops/ms
ArrayCopyObject.disjoint_micro N/A 2047 thrpt 15 9407.159 ? 102.308 ops/ms
ArrayCopyObject.disjoint_micro N/A 4095 thrpt 15 5107.999 ? 49.856 ops/ms
ArrayCopyObject.disjoint_micro N/A 8191 thrpt 15 1195.313 ? 7.580 ops/ms
ArrayCopy.arrayCopy N/A N/A avgt 15 1.354 ? 0.026 ns/op
ArrayCopy.arrayCopyChar N/A N/A avgt 15 4.388 ? 0.101 ns/op
ArrayCopy.arrayCopyCharNonConst N/A N/A avgt 15 4.715 ? 0.077 ns/op
ArrayCopy.arrayCopyLocalArray N/A N/A avgt 15 0.505 ? 0.007 ns/op
ArrayCopy.arrayCopyNonConst N/A N/A avgt 15 1.900 ? 0.042 ns/op
ArrayCopy.arrayCopyObject N/A N/A avgt 15 23.395 ? 0.252 ns/op
ArrayCopy.arrayCopyObjectNonConst N/A N/A avgt 15 25.409 ? 0.355 ns/op
ArrayCopy.arrayCopyObjectSameArraysBackward N/A N/A avgt 15 17.352 ? 0.297 ns/op
ArrayCopy.arrayCopyObjectSameArraysForward N/A N/A avgt 15 17.804 ? 0.198 ns/op
ArrayCopy.copyLoop N/A N/A avgt 15 5.114 ? 0.117 ns/op
ArrayCopy.copyLoopLocalArray N/A N/A avgt 15 3.728 ? 0.086 ns/op
ArrayCopy.copyLoopNonConst N/A N/A avgt 15 5.413 ? 0.022 ns/op
ArrayCopyAligned.testByte 1 N/A avgt 15 2.367 ? 0.041 ns/op
ArrayCopyAligned.testByte 3 N/A avgt 15 2.368 ? 0.048 ns/op
ArrayCopyAligned.testByte 5 N/A avgt 15 2.360 ? 0.050 ns/op
ArrayCopyAligned.testByte 10 N/A avgt 15 2.362 ? 0.030 ns/op
ArrayCopyAligned.testByte 20 N/A avgt 15 2.363 ? 0.038 ns/op
ArrayCopyAligned.testByte 70 N/A avgt 15 5.185 ? 0.092 ns/op
ArrayCopyAligned.testByte 150 N/A avgt 15 5.905 ? 0.073 ns/op
ArrayCopyAligned.testByte 300 N/A avgt 15 9.720 ? 0.215 ns/op
ArrayCopyAligned.testByte 600 N/A avgt 15 13.076 ? 0.142 ns/op
ArrayCopyAligned.testByte 1200 N/A avgt 15 22.189 ? 0.143 ns/op
ArrayCopyAligned.testChar 1 N/A avgt 15 2.351 ? 0.008 ns/op
ArrayCopyAligned.testChar 3 N/A avgt 15 2.370 ? 0.046 ns/op
ArrayCopyAligned.testChar 5 N/A avgt 15 2.355 ? 0.037 ns/op
ArrayCopyAligned.testChar 10 N/A avgt 15 2.351 ? 0.020 ns/op
ArrayCopyAligned.testChar 20 N/A avgt 15 5.077 ? 0.059 ns/op
ArrayCopyAligned.testChar 70 N/A avgt 15 5.932 ? 0.101 ns/op
ArrayCopyAligned.testChar 150 N/A avgt 15 9.815 ? 0.159 ns/op
ArrayCopyAligned.testChar 300 N/A avgt 15 13.759 ? 0.197 ns/op
ArrayCopyAligned.testChar 600 N/A avgt 15 20.505 ? 0.161 ns/op
ArrayCopyAligned.testChar 1200 N/A avgt 15 33.720 ? 0.493 ns/op
ArrayCopyAligned.testInt 1 N/A avgt 15 4.417 ? 0.096 ns/op
ArrayCopyAligned.testInt 3 N/A avgt 15 4.363 ? 0.029 ns/op
ArrayCopyAligned.testInt 5 N/A avgt 15 4.365 ? 0.022 ns/op
ArrayCopyAligned.testInt 10 N/A avgt 15 5.122 ? 0.170 ns/op
ArrayCopyAligned.testInt 20 N/A avgt 15 5.074 ? 0.076 ns/op
ArrayCopyAligned.testInt 70 N/A avgt 15 9.048 ? 0.201 ns/op
ArrayCopyAligned.testInt 150 N/A avgt 15 12.559 ? 0.159 ns/op
ArrayCopyAligned.testInt 300 N/A avgt 15 21.518 ? 0.276 ns/op
ArrayCopyAligned.testInt 600 N/A avgt 15 38.209 ? 0.349 ns/op
ArrayCopyAligned.testInt 1200 N/A avgt 15 54.638 ? 0.706 ns/op
ArrayCopyAligned.testLong 1 N/A avgt 15 4.407 ? 0.041 ns/op
ArrayCopyAligned.testLong 3 N/A avgt 15 4.415 ? 0.077 ns/op
ArrayCopyAligned.testLong 5 N/A avgt 15 5.087 ? 0.092 ns/op
ArrayCopyAligned.testLong 10 N/A avgt 15 5.072 ? 0.078 ns/op
ArrayCopyAligned.testLong 20 N/A avgt 15 5.802 ? 0.023 ns/op
ArrayCopyAligned.testLong 70 N/A avgt 15 11.284 ? 0.171 ns/op
ArrayCopyAligned.testLong 150 N/A avgt 15 17.501 ? 0.185 ns/op
ArrayCopyAligned.testLong 300 N/A avgt 15 27.477 ? 0.391 ns/op
ArrayCopyAligned.testLong 600 N/A avgt 15 44.711 ? 0.209 ns/op
ArrayCopyAligned.testLong 1200 N/A avgt 15 77.157 ? 1.437 ns/op
ArrayCopyUnalignedBoth.testByte 1 N/A avgt 15 2.360 ? 0.040 ns/op
ArrayCopyUnalignedBoth.testByte 3 N/A avgt 15 2.351 ? 0.028 ns/op
ArrayCopyUnalignedBoth.testByte 5 N/A avgt 15 2.352 ? 0.017 ns/op
ArrayCopyUnalignedBoth.testByte 10 N/A avgt 15 2.347 ? 0.011 ns/op
ArrayCopyUnalignedBoth.testByte 20 N/A avgt 15 2.363 ? 0.039 ns/op
ArrayCopyUnalignedBoth.testByte 70 N/A avgt 15 5.182 ? 0.083 ns/op
ArrayCopyUnalignedBoth.testByte 150 N/A avgt 15 5.920 ? 0.157 ns/op
ArrayCopyUnalignedBoth.testByte 300 N/A avgt 15 10.374 ? 0.314 ns/op
ArrayCopyUnalignedBoth.testByte 600 N/A avgt 15 13.511 ? 0.182 ns/op
ArrayCopyUnalignedBoth.testByte 1200 N/A avgt 15 21.302 ? 0.194 ns/op
ArrayCopyUnalignedBoth.testChar 1 N/A avgt 15 2.359 ? 0.035 ns/op
ArrayCopyUnalignedBoth.testChar 3 N/A avgt 15 2.342 ? 0.002 ns/op
ArrayCopyUnalignedBoth.testChar 5 N/A avgt 15 2.348 ? 0.019 ns/op
ArrayCopyUnalignedBoth.testChar 10 N/A avgt 15 2.362 ? 0.059 ns/op
ArrayCopyUnalignedBoth.testChar 20 N/A avgt 15 5.079 ? 0.046 ns/op
ArrayCopyUnalignedBoth.testChar 70 N/A avgt 15 5.974 ? 0.165 ns/op
ArrayCopyUnalignedBoth.testChar 150 N/A avgt 15 10.201 ? 0.260 ns/op
ArrayCopyUnalignedBoth.testChar 300 N/A avgt 15 13.862 ? 0.064 ns/op
ArrayCopyUnalignedBoth.testChar 600 N/A avgt 15 20.752 ? 0.240 ns/op
ArrayCopyUnalignedBoth.testChar 1200 N/A avgt 15 36.883 ? 0.390 ns/op
ArrayCopyUnalignedBoth.testInt 1 N/A avgt 15 4.372 ? 0.054 ns/op
ArrayCopyUnalignedBoth.testInt 3 N/A avgt 15 4.376 ? 0.051 ns/op
ArrayCopyUnalignedBoth.testInt 5 N/A avgt 15 4.385 ? 0.081 ns/op
ArrayCopyUnalignedBoth.testInt 10 N/A avgt 15 5.059 ? 0.082 ns/op
ArrayCopyUnalignedBoth.testInt 20 N/A avgt 15 5.099 ? 0.154 ns/op
ArrayCopyUnalignedBoth.testInt 70 N/A avgt 15 8.983 ? 0.079 ns/op
ArrayCopyUnalignedBoth.testInt 150 N/A avgt 15 12.481 ? 0.169 ns/op
ArrayCopyUnalignedBoth.testInt 300 N/A avgt 15 23.265 ? 0.319 ns/op
ArrayCopyUnalignedBoth.testInt 600 N/A avgt 15 38.328 ? 0.259 ns/op
ArrayCopyUnalignedBoth.testInt 1200 N/A avgt 15 57.320 ? 0.476 ns/op
ArrayCopyUnalignedBoth.testLong 1 N/A avgt 15 4.413 ? 0.055 ns/op
ArrayCopyUnalignedBoth.testLong 3 N/A avgt 15 4.409 ? 0.024 ns/op
ArrayCopyUnalignedBoth.testLong 5 N/A avgt 15 5.086 ? 0.134 ns/op
ArrayCopyUnalignedBoth.testLong 10 N/A avgt 15 5.069 ? 0.022 ns/op
ArrayCopyUnalignedBoth.testLong 20 N/A avgt 15 5.788 ? 0.087 ns/op
ArrayCopyUnalignedBoth.testLong 70 N/A avgt 15 11.149 ? 0.182 ns/op
ArrayCopyUnalignedBoth.testLong 150 N/A avgt 15 22.461 ? 0.284 ns/op
ArrayCopyUnalignedBoth.testLong 300 N/A avgt 15 36.353 ? 0.272 ns/op
ArrayCopyUnalignedBoth.testLong 600 N/A avgt 15 47.568 ? 2.050 ns/op
ArrayCopyUnalignedBoth.testLong 1200 N/A avgt 15 80.643 ? 3.747 ns/op
ArrayCopyUnalignedDst.testByte 1 N/A avgt 15 2.344 ? 0.004 ns/op
ArrayCopyUnalignedDst.testByte 10 N/A avgt 15 2.362 ? 0.043 ns/op
ArrayCopyUnalignedDst.testByte 150 N/A avgt 15 5.922 ? 0.066 ns/op
ArrayCopyUnalignedDst.testByte 1200 N/A avgt 15 19.768 ? 0.177 ns/op
ArrayCopyUnalignedDst.testChar 1 N/A avgt 15 2.358 ? 0.032 ns/op
ArrayCopyUnalignedDst.testChar 10 N/A avgt 15 2.379 ? 0.056 ns/op
ArrayCopyUnalignedDst.testChar 150 N/A avgt 15 9.497 ? 0.181 ns/op
ArrayCopyUnalignedDst.testChar 1200 N/A avgt 15 36.580 ? 0.067 ns/op
ArrayCopyUnalignedDst.testInt 1 N/A avgt 15 4.412 ? 0.106 ns/op
ArrayCopyUnalignedDst.testInt 10 N/A avgt 15 5.082 ? 0.130 ns/op
ArrayCopyUnalignedDst.testInt 150 N/A avgt 15 13.638 ? 0.262 ns/op
ArrayCopyUnalignedDst.testInt 1200 N/A avgt 15 56.724 ? 0.247 ns/op
ArrayCopyUnalignedDst.testLong 1 N/A avgt 15 4.435 ? 0.113 ns/op
ArrayCopyUnalignedDst.testLong 10 N/A avgt 15 5.102 ? 0.095 ns/op
ArrayCopyUnalignedDst.testLong 150 N/A avgt 15 20.762 ? 0.388 ns/op
ArrayCopyUnalignedDst.testLong 1200 N/A avgt 15 77.408 ? 2.771 ns/op
ArrayCopyUnalignedSrc.testByte 1 N/A avgt 15 2.346 ? 0.009 ns/op
ArrayCopyUnalignedSrc.testByte 10 N/A avgt 15 2.367 ? 0.053 ns/op
ArrayCopyUnalignedSrc.testByte 150 N/A avgt 15 5.953 ? 0.120 ns/op
ArrayCopyUnalignedSrc.testByte 1200 N/A avgt 15 16.899 ? 0.277 ns/op
ArrayCopyUnalignedSrc.testChar 1 N/A avgt 15 2.375 ? 0.054 ns/op
ArrayCopyUnalignedSrc.testChar 10 N/A avgt 15 2.348 ? 0.005 ns/op
ArrayCopyUnalignedSrc.testChar 150 N/A avgt 15 9.559 ? 0.217 ns/op
ArrayCopyUnalignedSrc.testChar 1200 N/A avgt 15 31.406 ? 0.389 ns/op
ArrayCopyUnalignedSrc.testInt 1 N/A avgt 15 4.372 ? 0.023 ns/op
ArrayCopyUnalignedSrc.testInt 10 N/A avgt 15 5.071 ? 0.110 ns/op
ArrayCopyUnalignedSrc.testInt 150 N/A avgt 15 12.627 ? 0.379 ns/op
ArrayCopyUnalignedSrc.testInt 1200 N/A avgt 15 54.595 ? 0.281 ns/op
ArrayCopyUnalignedSrc.testLong 1 N/A avgt 15 4.415 ? 0.043 ns/op
ArrayCopyUnalignedSrc.testLong 10 N/A avgt 15 5.058 ? 0.065 ns/op
ArrayCopyUnalignedSrc.testLong 150 N/A avgt 15 20.759 ? 0.256 ns/op
ArrayCopyUnalignedSrc.testLong 1200 N/A avgt 15 78.106 ? 2.320 ns/op
Most of the diferences are in the error range, a few are a little bigger.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16575#discussion_r1396373393
More information about the core-libs-dev
mailing list