RFR: 8285255: refine StringLatin1.regionMatchesCI_UTF16 [v2]
XenoAmess
duke at openjdk.java.net
Wed Apr 20 20:17:26 UTC 2022
On Wed, 20 Apr 2022 20:09:06 GMT, XenoAmess <duke at openjdk.java.net> wrote:
>> some thoughts after watching 8285001: Simplify StringLatin1.regionMatches https://github.com/openjdk/jdk/pull/8292/
>>
>> if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) {
>> continue;
>> }
>>
>> should be changed to
>>
>> if (((u1 == c1) ? CharacterDataLatin1.instance.toLowerCase(c1) : c1) == Character.toLowerCase(u2)) {
>> continue;
>> }
>>
>> as:
>>
>> 1. c1 is LATIN1, so CharacterDataLatin1.instance.toLowerCase seems faster.
>> 2. because c1 is LATIN1, so if u1 != c1, then c1 is already lowercase, and don't need a lowercase cauculation.
>
> XenoAmess has updated the pull request incrementally with one additional commit since the last revision:
>
> add jmh test
<details>
<summary>Jmh Result(without = check)</summary>
<p>
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.charAt
# Run progress: 0.00% complete, ETA 00:06:00
# Fork: 1 of 3
# Warmup Iteration 1: 74.478 ns/op
# Warmup Iteration 2: 72.357 ns/op
# Warmup Iteration 3: 72.555 ns/op
# Warmup Iteration 4: 73.901 ns/op
# Warmup Iteration 5: 73.573 ns/op
# Warmup Iteration 6: 73.771 ns/op
# Warmup Iteration 7: 70.427 ns/op
# Warmup Iteration 8: 75.018 ns/op
# Warmup Iteration 9: 74.755 ns/op
# Warmup Iteration 10: 69.792 ns/op
Iteration 1: 72.330 ns/op
Iteration 2: 73.277 ns/op
Iteration 3: 73.678 ns/op
Iteration 4: 68.865 ns/op
Iteration 5: 74.953 ns/op
# Run progress: 4.17% complete, ETA 00:05:52
# Fork: 2 of 3
# Warmup Iteration 1: 74.439 ns/op
# Warmup Iteration 2: 73.358 ns/op
# Warmup Iteration 3: 71.799 ns/op
# Warmup Iteration 4: 70.913 ns/op
# Warmup Iteration 5: 71.575 ns/op
# Warmup Iteration 6: 69.340 ns/op
# Warmup Iteration 7: 69.536 ns/op
# Warmup Iteration 8: 69.717 ns/op
# Warmup Iteration 9: 70.526 ns/op
# Warmup Iteration 10: 74.645 ns/op
Iteration 1: 73.770 ns/op
Iteration 2: 74.756 ns/op
Iteration 3: 73.574 ns/op
Iteration 4: 72.319 ns/op
Iteration 5: 72.092 ns/op
# Run progress: 8.33% complete, ETA 00:05:36
# Fork: 3 of 3
# Warmup Iteration 1: 73.593 ns/op
# Warmup Iteration 2: 69.462 ns/op
# Warmup Iteration 3: 72.013 ns/op
# Warmup Iteration 4: 68.641 ns/op
# Warmup Iteration 5: 73.384 ns/op
# Warmup Iteration 6: 69.624 ns/op
# Warmup Iteration 7: 73.325 ns/op
# Warmup Iteration 8: 72.080 ns/op
# Warmup Iteration 9: 73.454 ns/op
# Warmup Iteration 10: 73.144 ns/op
Iteration 1: 66.782 ns/op
Iteration 2: 73.245 ns/op
Iteration 3: 73.835 ns/op
Iteration 4: 67.903 ns/op
Iteration 5: 72.810 ns/op
Result "org.openjdk.bench.java.lang.StringOther.charAt":
72.279 ±(99.9%) 2.632 ns/op [Average]
(min, avg, max) = (66.782, 72.279, 74.953), stdev = 2.462
CI (99.9%): [69.648, 74.911] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.compareTo
# Run progress: 12.50% complete, ETA 00:05:21
# Fork: 1 of 3
# Warmup Iteration 1: 7.684 ns/op
# Warmup Iteration 2: 7.539 ns/op
# Warmup Iteration 3: 7.072 ns/op
# Warmup Iteration 4: 7.529 ns/op
# Warmup Iteration 5: 7.712 ns/op
# Warmup Iteration 6: 7.514 ns/op
# Warmup Iteration 7: 7.935 ns/op
# Warmup Iteration 8: 7.585 ns/op
# Warmup Iteration 9: 7.511 ns/op
# Warmup Iteration 10: 7.243 ns/op
Iteration 1: 7.202 ns/op
Iteration 2: 7.207 ns/op
Iteration 3: 7.122 ns/op
Iteration 4: 7.140 ns/op
Iteration 5: 7.291 ns/op
# Run progress: 16.67% complete, ETA 00:05:06
# Fork: 2 of 3
# Warmup Iteration 1: 7.665 ns/op
# Warmup Iteration 2: 7.611 ns/op
# Warmup Iteration 3: 6.974 ns/op
# Warmup Iteration 4: 7.627 ns/op
# Warmup Iteration 5: 7.605 ns/op
# Warmup Iteration 6: 7.526 ns/op
# Warmup Iteration 7: 7.535 ns/op
# Warmup Iteration 8: 7.581 ns/op
# Warmup Iteration 9: 7.624 ns/op
# Warmup Iteration 10: 7.116 ns/op
Iteration 1: 7.104 ns/op
Iteration 2: 7.112 ns/op
Iteration 3: 7.163 ns/op
Iteration 4: 7.113 ns/op
Iteration 5: 7.182 ns/op
# Run progress: 20.83% complete, ETA 00:04:50
# Fork: 3 of 3
# Warmup Iteration 1: 7.590 ns/op
# Warmup Iteration 2: 7.580 ns/op
# Warmup Iteration 3: 7.038 ns/op
# Warmup Iteration 4: 7.576 ns/op
# Warmup Iteration 5: 7.560 ns/op
# Warmup Iteration 6: 7.579 ns/op
# Warmup Iteration 7: 7.538 ns/op
# Warmup Iteration 8: 7.521 ns/op
# Warmup Iteration 9: 7.568 ns/op
# Warmup Iteration 10: 7.304 ns/op
Iteration 1: 7.272 ns/op
Iteration 2: 7.244 ns/op
Iteration 3: 7.247 ns/op
Iteration 4: 7.270 ns/op
Iteration 5: 7.335 ns/op
Result "org.openjdk.bench.java.lang.StringOther.compareTo":
7.200 ±(99.9%) 0.079 ns/op [Average]
(min, avg, max) = (7.104, 7.200, 7.335), stdev = 0.074
CI (99.9%): [7.121, 7.279] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.internUnique
# Run progress: 25.00% complete, ETA 00:04:35
# Fork: 1 of 3
# Warmup Iteration 1: 711.210 ns/op
# Warmup Iteration 2: 715.546 ns/op
# Warmup Iteration 3: 719.641 ns/op
# Warmup Iteration 4: 880.842 ns/op
# Warmup Iteration 5: 1208.438 ns/op
# Warmup Iteration 6: 1412.411 ns/op
# Warmup Iteration 7: 1556.071 ns/op
# Warmup Iteration 8: 1757.619 ns/op
# Warmup Iteration 9: 1870.034 ns/op
# Warmup Iteration 10: 2005.351 ns/op
Iteration 1: 2145.538 ns/op
Iteration 2: 2269.473 ns/op
Iteration 3: 2378.031 ns/op
Iteration 4: 2471.040 ns/op
Iteration 5: 2619.508 ns/op
# Run progress: 29.17% complete, ETA 00:04:20
# Fork: 2 of 3
# Warmup Iteration 1: 720.517 ns/op
# Warmup Iteration 2: 729.418 ns/op
# Warmup Iteration 3: 764.210 ns/op
# Warmup Iteration 4: 873.379 ns/op
# Warmup Iteration 5: 1168.143 ns/op
# Warmup Iteration 6: 1380.917 ns/op
# Warmup Iteration 7: 1593.366 ns/op
# Warmup Iteration 8: 1736.498 ns/op
# Warmup Iteration 9: 1850.467 ns/op
# Warmup Iteration 10: 2017.632 ns/op
Iteration 1: 2147.386 ns/op
Iteration 2: 2264.158 ns/op
Iteration 3: 2398.126 ns/op
Iteration 4: 2449.589 ns/op
Iteration 5: 2595.557 ns/op
# Run progress: 33.33% complete, ETA 00:04:05
# Fork: 3 of 3
# Warmup Iteration 1: 704.568 ns/op
# Warmup Iteration 2: 719.501 ns/op
# Warmup Iteration 3: 727.100 ns/op
# Warmup Iteration 4: 890.044 ns/op
# Warmup Iteration 5: 1187.037 ns/op
# Warmup Iteration 6: 1411.096 ns/op
# Warmup Iteration 7: 1581.086 ns/op
# Warmup Iteration 8: 1760.902 ns/op
# Warmup Iteration 9: 1920.568 ns/op
# Warmup Iteration 10: 2043.275 ns/op
Iteration 1: 2154.441 ns/op
Iteration 2: 2269.279 ns/op
Iteration 3: 2388.032 ns/op
Iteration 4: 2499.567 ns/op
Iteration 5: 2616.938 ns/op
Result "org.openjdk.bench.java.lang.StringOther.internUnique":
2377.777 ±(99.9%) 177.415 ns/op [Average]
(min, avg, max) = (2145.538, 2377.777, 2619.508), stdev = 165.954
CI (99.9%): [2200.362, 2555.193] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.regionMatchesLatin1
# Run progress: 37.50% complete, ETA 00:03:49
# Fork: 1 of 3
# Warmup Iteration 1: 27.488 ns/op
# Warmup Iteration 2: 26.757 ns/op
# Warmup Iteration 3: 26.459 ns/op
# Warmup Iteration 4: 27.101 ns/op
# Warmup Iteration 5: 26.924 ns/op
# Warmup Iteration 6: 27.383 ns/op
# Warmup Iteration 7: 27.290 ns/op
# Warmup Iteration 8: 26.916 ns/op
# Warmup Iteration 9: 26.846 ns/op
# Warmup Iteration 10: 26.165 ns/op
Iteration 1: 26.528 ns/op
Iteration 2: 26.675 ns/op
Iteration 3: 26.470 ns/op
Iteration 4: 26.133 ns/op
Iteration 5: 27.045 ns/op
# Run progress: 41.67% complete, ETA 00:03:34
# Fork: 2 of 3
# Warmup Iteration 1: 27.435 ns/op
# Warmup Iteration 2: 27.139 ns/op
# Warmup Iteration 3: 26.260 ns/op
# Warmup Iteration 4: 27.203 ns/op
# Warmup Iteration 5: 27.275 ns/op
# Warmup Iteration 6: 26.786 ns/op
# Warmup Iteration 7: 26.793 ns/op
# Warmup Iteration 8: 26.812 ns/op
# Warmup Iteration 9: 26.998 ns/op
# Warmup Iteration 10: 26.521 ns/op
Iteration 1: 26.258 ns/op
Iteration 2: 26.302 ns/op
Iteration 3: 26.298 ns/op
Iteration 4: 26.283 ns/op
Iteration 5: 26.819 ns/op
# Run progress: 45.83% complete, ETA 00:03:19
# Fork: 3 of 3
# Warmup Iteration 1: 27.275 ns/op
# Warmup Iteration 2: 27.129 ns/op
# Warmup Iteration 3: 26.404 ns/op
# Warmup Iteration 4: 26.708 ns/op
# Warmup Iteration 5: 26.969 ns/op
# Warmup Iteration 6: 27.077 ns/op
# Warmup Iteration 7: 26.732 ns/op
# Warmup Iteration 8: 27.090 ns/op
# Warmup Iteration 9: 26.974 ns/op
# Warmup Iteration 10: 26.679 ns/op
Iteration 1: 26.379 ns/op
Iteration 2: 26.171 ns/op
Iteration 3: 26.151 ns/op
Iteration 4: 26.234 ns/op
Iteration 5: 26.382 ns/op
Result "org.openjdk.bench.java.lang.StringOther.regionMatchesLatin1":
26.409 ±(99.9%) 0.279 ns/op [Average]
(min, avg, max) = (26.133, 26.409, 27.045), stdev = 0.261
CI (99.9%): [26.129, 26.688] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.regionMatchesU1024LL
# Run progress: 50.00% complete, ETA 00:03:03
# Fork: 1 of 3
# Warmup Iteration 1: 303.144 ns/op
# Warmup Iteration 2: 296.744 ns/op
# Warmup Iteration 3: 186.968 ns/op
# Warmup Iteration 4: 300.451 ns/op
# Warmup Iteration 5: 297.590 ns/op
# Warmup Iteration 6: 296.346 ns/op
# Warmup Iteration 7: 300.523 ns/op
# Warmup Iteration 8: 295.685 ns/op
# Warmup Iteration 9: 303.034 ns/op
# Warmup Iteration 10: 185.710 ns/op
Iteration 1: 185.747 ns/op
Iteration 2: 185.476 ns/op
Iteration 3: 185.970 ns/op
Iteration 4: 186.685 ns/op
Iteration 5: 190.241 ns/op
# Run progress: 54.17% complete, ETA 00:02:48
# Fork: 2 of 3
# Warmup Iteration 1: 306.968 ns/op
# Warmup Iteration 2: 300.146 ns/op
# Warmup Iteration 3: 189.228 ns/op
# Warmup Iteration 4: 297.168 ns/op
# Warmup Iteration 5: 296.126 ns/op
# Warmup Iteration 6: 295.891 ns/op
# Warmup Iteration 7: 295.972 ns/op
# Warmup Iteration 8: 295.817 ns/op
# Warmup Iteration 9: 300.546 ns/op
# Warmup Iteration 10: 186.313 ns/op
Iteration 1: 187.967 ns/op
Iteration 2: 186.222 ns/op
Iteration 3: 185.710 ns/op
Iteration 4: 187.249 ns/op
Iteration 5: 188.887 ns/op
# Run progress: 58.33% complete, ETA 00:02:33
# Fork: 3 of 3
# Warmup Iteration 1: 303.105 ns/op
# Warmup Iteration 2: 299.711 ns/op
# Warmup Iteration 3: 187.263 ns/op
# Warmup Iteration 4: 298.838 ns/op
# Warmup Iteration 5: 298.997 ns/op
# Warmup Iteration 6: 296.007 ns/op
# Warmup Iteration 7: 296.305 ns/op
# Warmup Iteration 8: 296.056 ns/op
# Warmup Iteration 9: 299.125 ns/op
# Warmup Iteration 10: 187.975 ns/op
Iteration 1: 187.091 ns/op
Iteration 2: 189.476 ns/op
Iteration 3: 188.990 ns/op
Iteration 4: 189.501 ns/op
Iteration 5: 190.764 ns/op
Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024LL":
187.732 ±(99.9%) 1.914 ns/op [Average]
(min, avg, max) = (185.476, 187.732, 190.764), stdev = 1.790
CI (99.9%): [185.818, 189.646] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.regionMatchesU1024LU
# Run progress: 62.50% complete, ETA 00:02:17
# Fork: 1 of 3
# Warmup Iteration 1: 1792.067 ns/op
# Warmup Iteration 2: 1840.234 ns/op
# Warmup Iteration 3: 1536.619 ns/op
# Warmup Iteration 4: 1867.624 ns/op
# Warmup Iteration 5: 1878.742 ns/op
# Warmup Iteration 6: 1835.980 ns/op
# Warmup Iteration 7: 1837.200 ns/op
# Warmup Iteration 8: 1836.986 ns/op
# Warmup Iteration 9: 1838.710 ns/op
# Warmup Iteration 10: 1305.558 ns/op
Iteration 1: 1324.687 ns/op
Iteration 2: 1317.813 ns/op
Iteration 3: 1331.293 ns/op
Iteration 4: 1331.446 ns/op
Iteration 5: 1336.226 ns/op
# Run progress: 66.67% complete, ETA 00:02:02
# Fork: 2 of 3
# Warmup Iteration 1: 1792.898 ns/op
# Warmup Iteration 2: 1871.357 ns/op
# Warmup Iteration 3: 1527.959 ns/op
# Warmup Iteration 4: 1859.196 ns/op
# Warmup Iteration 5: 1837.751 ns/op
# Warmup Iteration 6: 1868.952 ns/op
# Warmup Iteration 7: 1838.721 ns/op
# Warmup Iteration 8: 1838.604 ns/op
# Warmup Iteration 9: 1864.258 ns/op
# Warmup Iteration 10: 1322.919 ns/op
Iteration 1: 1325.401 ns/op
Iteration 2: 1316.595 ns/op
Iteration 3: 1316.863 ns/op
Iteration 4: 1314.357 ns/op
Iteration 5: 1332.473 ns/op
# Run progress: 70.83% complete, ETA 00:01:47
# Fork: 3 of 3
# Warmup Iteration 1: 1802.783 ns/op
# Warmup Iteration 2: 1864.955 ns/op
# Warmup Iteration 3: 1525.647 ns/op
# Warmup Iteration 4: 1865.719 ns/op
# Warmup Iteration 5: 1855.859 ns/op
# Warmup Iteration 6: 1840.375 ns/op
# Warmup Iteration 7: 1836.324 ns/op
# Warmup Iteration 8: 1840.356 ns/op
# Warmup Iteration 9: 1837.068 ns/op
# Warmup Iteration 10: 1316.856 ns/op
Iteration 1: 1308.652 ns/op
Iteration 2: 1312.048 ns/op
Iteration 3: 1327.190 ns/op
Iteration 4: 1317.060 ns/op
Iteration 5: 1350.241 ns/op
Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024LU":
1324.156 ±(99.9%) 11.761 ns/op [Average]
(min, avg, max) = (1308.652, 1324.156, 1350.241), stdev = 11.001
CI (99.9%): [1312.396, 1335.917] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.regionMatchesU1024UL
# Run progress: 75.00% complete, ETA 00:01:31
# Fork: 1 of 3
# Warmup Iteration 1: 1876.966 ns/op
# Warmup Iteration 2: 1956.101 ns/op
# Warmup Iteration 3: 1329.634 ns/op
# Warmup Iteration 4: 1960.647 ns/op
# Warmup Iteration 5: 1945.769 ns/op
# Warmup Iteration 6: 1939.349 ns/op
# Warmup Iteration 7: 1962.894 ns/op
# Warmup Iteration 8: 1965.710 ns/op
# Warmup Iteration 9: 1962.636 ns/op
# Warmup Iteration 10: 1303.857 ns/op
Iteration 1: 1325.286 ns/op
Iteration 2: 1315.074 ns/op
Iteration 3: 1311.516 ns/op
Iteration 4: 1380.285 ns/op
Iteration 5: 1374.154 ns/op
# Run progress: 79.17% complete, ETA 00:01:16
# Fork: 2 of 3
# Warmup Iteration 1: 1949.514 ns/op
# Warmup Iteration 2: 2007.440 ns/op
# Warmup Iteration 3: 1367.116 ns/op
# Warmup Iteration 4: 1990.732 ns/op
# Warmup Iteration 5: 1958.976 ns/op
# Warmup Iteration 6: 1965.754 ns/op
# Warmup Iteration 7: 1971.913 ns/op
# Warmup Iteration 8: 1974.948 ns/op
# Warmup Iteration 9: 1963.292 ns/op
# Warmup Iteration 10: 1345.950 ns/op
Iteration 1: 1323.690 ns/op
Iteration 2: 1340.325 ns/op
Iteration 3: 1340.706 ns/op
Iteration 4: 1324.195 ns/op
Iteration 5: 1339.104 ns/op
# Run progress: 83.33% complete, ETA 00:01:01
# Fork: 3 of 3
# Warmup Iteration 1: 1893.688 ns/op
# Warmup Iteration 2: 1963.501 ns/op
# Warmup Iteration 3: 1332.057 ns/op
# Warmup Iteration 4: 1994.072 ns/op
# Warmup Iteration 5: 1981.262 ns/op
# Warmup Iteration 6: 1978.875 ns/op
# Warmup Iteration 7: 1975.539 ns/op
# Warmup Iteration 8: 1976.051 ns/op
# Warmup Iteration 9: 1965.054 ns/op
# Warmup Iteration 10: 1309.543 ns/op
Iteration 1: 1321.755 ns/op
Iteration 2: 1318.766 ns/op
Iteration 3: 1311.904 ns/op
Iteration 4: 1314.272 ns/op
Iteration 5: 1336.825 ns/op
Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024UL":
1331.857 ±(99.9%) 22.509 ns/op [Average]
(min, avg, max) = (1311.516, 1331.857, 1380.285), stdev = 21.055
CI (99.9%): [1309.348, 1354.366] (assumes normal distribution)
# JMH version: 1.34
# VM version: JDK 19-internal, OpenJDK 64-Bit Server VM, 19-internal-adhoc..jdk
# VM invoker: F:\workspace\jdk\build\windows-x86_64-server-release\images\jdk\bin\java.exe
# VM options: -Djava.library.path=f:\workspace\jdk\build\windows-x86_64-server-release\images\test\micro\native
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 1000 ms each
# Measurement: 5 iterations, 1000 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.bench.java.lang.StringOther.regionMatchesU1024UU
# Run progress: 87.50% complete, ETA 00:00:45
# Fork: 1 of 3
# Warmup Iteration 1: 301.524 ns/op
# Warmup Iteration 2: 298.614 ns/op
# Warmup Iteration 3: 188.084 ns/op
# Warmup Iteration 4: 297.548 ns/op
# Warmup Iteration 5: 297.762 ns/op
# Warmup Iteration 6: 298.255 ns/op
# Warmup Iteration 7: 298.128 ns/op
# Warmup Iteration 8: 297.294 ns/op
# Warmup Iteration 9: 301.427 ns/op
# Warmup Iteration 10: 188.916 ns/op
Iteration 1: 187.242 ns/op
Iteration 2: 187.279 ns/op
Iteration 3: 186.889 ns/op
Iteration 4: 187.419 ns/op
Iteration 5: 186.700 ns/op
# Run progress: 91.67% complete, ETA 00:00:30
# Fork: 2 of 3
# Warmup Iteration 1: 309.555 ns/op
# Warmup Iteration 2: 299.977 ns/op
# Warmup Iteration 3: 190.319 ns/op
# Warmup Iteration 4: 300.650 ns/op
# Warmup Iteration 5: 300.809 ns/op
# Warmup Iteration 6: 304.232 ns/op
# Warmup Iteration 7: 303.104 ns/op
# Warmup Iteration 8: 298.601 ns/op
# Warmup Iteration 9: 304.347 ns/op
# Warmup Iteration 10: 190.332 ns/op
Iteration 1: 190.087 ns/op
Iteration 2: 189.434 ns/op
Iteration 3: 187.803 ns/op
Iteration 4: 186.678 ns/op
Iteration 5: 188.202 ns/op
# Run progress: 95.83% complete, ETA 00:00:15
# Fork: 3 of 3
# Warmup Iteration 1: 306.889 ns/op
# Warmup Iteration 2: 306.172 ns/op
# Warmup Iteration 3: 190.313 ns/op
# Warmup Iteration 4: 300.543 ns/op
# Warmup Iteration 5: 304.967 ns/op
# Warmup Iteration 6: 302.572 ns/op
# Warmup Iteration 7: 297.677 ns/op
# Warmup Iteration 8: 303.316 ns/op
# Warmup Iteration 9: 304.080 ns/op
# Warmup Iteration 10: 190.553 ns/op
Iteration 1: 191.023 ns/op
Iteration 2: 192.502 ns/op
Iteration 3: 187.058 ns/op
Iteration 4: 192.817 ns/op
Iteration 5: 191.955 ns/op
Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024UU":
188.872 ±(99.9%) 2.396 ns/op [Average]
(min, avg, max) = (186.678, 188.872, 192.817), stdev = 2.241
CI (99.9%): [186.477, 191.268] (assumes normal distribution)
# Run complete. Total time: 00:06:07
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
experiments, perform baseline and negative tests that provide experimental control, make sure
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
Do not assume the numbers tell you what you want them to tell.
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise
extra caution when trusting the results, look into the generated code to check the benchmark still
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between
different JVMs are already problematic, the performance difference caused by different Blackhole
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons.
Benchmark Mode Cnt Score Error Units
StringOther.charAt avgt 15 72.279 ± 2.632 ns/op
StringOther.compareTo avgt 15 7.200 ± 0.079 ns/op
StringOther.internUnique avgt 15 2377.777 ± 177.415 ns/op
StringOther.regionMatchesLatin1 avgt 15 26.409 ± 0.279 ns/op
StringOther.regionMatchesU1024LL avgt 15 187.732 ± 1.914 ns/op
StringOther.regionMatchesU1024LU avgt 15 1324.156 ± 11.761 ns/op
StringOther.regionMatchesU1024UL avgt 15 1331.857 ± 22.509 ns/op
StringOther.regionMatchesU1024UU avgt 15 188.872 ± 2.396 ns/op
</p>
</details>
-------------
PR: https://git.openjdk.java.net/jdk/pull/8308
More information about the core-libs-dev
mailing list