On Thu, 16 Nov 2023 05:43:11 GMT, Jatin Bhateja <jbhat...@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