On Tue, 19 Apr 2022 21:15:29 GMT, XenoAmess <d...@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.

<details>
<summary>Jmh Result(with = 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: 72.769 ns/op
# Warmup Iteration   2: 74.375 ns/op
# Warmup Iteration   3: 72.471 ns/op
# Warmup Iteration   4: 73.477 ns/op
# Warmup Iteration   5: 74.972 ns/op
# Warmup Iteration   6: 73.593 ns/op
# Warmup Iteration   7: 74.270 ns/op
# Warmup Iteration   8: 74.981 ns/op
# Warmup Iteration   9: 74.273 ns/op
# Warmup Iteration  10: 71.556 ns/op
Iteration   1: 73.743 ns/op
Iteration   2: 72.647 ns/op
Iteration   3: 73.701 ns/op
Iteration   4: 74.033 ns/op
Iteration   5: 73.786 ns/op

# Run progress: 4.17% complete, ETA 00:05:52
# Fork: 2 of 3
# Warmup Iteration   1: 75.489 ns/op
# Warmup Iteration   2: 73.533 ns/op
# Warmup Iteration   3: 72.524 ns/op
# Warmup Iteration   4: 73.259 ns/op
# Warmup Iteration   5: 73.346 ns/op
# Warmup Iteration   6: 72.259 ns/op
# Warmup Iteration   7: 73.705 ns/op
# Warmup Iteration   8: 71.332 ns/op
# Warmup Iteration   9: 70.587 ns/op
# Warmup Iteration  10: 69.392 ns/op
Iteration   1: 67.762 ns/op
Iteration   2: 73.029 ns/op
Iteration   3: 69.133 ns/op
Iteration   4: 70.344 ns/op
Iteration   5: 72.041 ns/op

# Run progress: 8.33% complete, ETA 00:05:37
# Fork: 3 of 3
# Warmup Iteration   1: 74.307 ns/op
# Warmup Iteration   2: 74.440 ns/op
# Warmup Iteration   3: 73.053 ns/op
# Warmup Iteration   4: 74.739 ns/op
# Warmup Iteration   5: 75.348 ns/op
# Warmup Iteration   6: 72.801 ns/op
# Warmup Iteration   7: 73.524 ns/op
# Warmup Iteration   8: 73.278 ns/op
# Warmup Iteration   9: 74.633 ns/op
# Warmup Iteration  10: 73.481 ns/op
Iteration   1: 73.787 ns/op
Iteration   2: 73.809 ns/op
Iteration   3: 74.020 ns/op
Iteration   4: 73.751 ns/op
Iteration   5: 73.674 ns/op


Result "org.openjdk.bench.java.lang.StringOther.charAt":
  72.617 ±(99.9%) 2.106 ns/op [Average]
  (min, avg, max) = (67.762, 72.617, 74.033), stdev = 1.970
  CI (99.9%): [70.511, 74.724] (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.600 ns/op
# Warmup Iteration   2: 7.552 ns/op
# Warmup Iteration   3: 7.001 ns/op
# Warmup Iteration   4: 7.529 ns/op
# Warmup Iteration   5: 7.541 ns/op
# Warmup Iteration   6: 7.531 ns/op
# Warmup Iteration   7: 7.524 ns/op
# Warmup Iteration   8: 7.507 ns/op
# Warmup Iteration   9: 7.506 ns/op
# Warmup Iteration  10: 7.184 ns/op
Iteration   1: 7.119 ns/op
Iteration   2: 7.111 ns/op
Iteration   3: 7.125 ns/op
Iteration   4: 7.113 ns/op
Iteration   5: 7.111 ns/op

# Run progress: 16.67% complete, ETA 00:05:06
# Fork: 2 of 3
# Warmup Iteration   1: 7.616 ns/op
# Warmup Iteration   2: 7.503 ns/op
# Warmup Iteration   3: 7.013 ns/op
# Warmup Iteration   4: 7.543 ns/op
# Warmup Iteration   5: 7.530 ns/op
# Warmup Iteration   6: 7.489 ns/op
# Warmup Iteration   7: 7.513 ns/op
# Warmup Iteration   8: 7.495 ns/op
# Warmup Iteration   9: 7.493 ns/op
# Warmup Iteration  10: 7.124 ns/op
Iteration   1: 7.156 ns/op
Iteration   2: 7.119 ns/op
Iteration   3: 7.111 ns/op
Iteration   4: 7.099 ns/op
Iteration   5: 7.171 ns/op

# Run progress: 20.83% complete, ETA 00:04:50
# Fork: 3 of 3
# Warmup Iteration   1: 7.576 ns/op
# Warmup Iteration   2: 7.575 ns/op
# Warmup Iteration   3: 6.999 ns/op
# Warmup Iteration   4: 7.559 ns/op
# Warmup Iteration   5: 7.551 ns/op
# Warmup Iteration   6: 7.512 ns/op
# Warmup Iteration   7: 7.651 ns/op
# Warmup Iteration   8: 7.608 ns/op
# Warmup Iteration   9: 7.605 ns/op
# Warmup Iteration  10: 7.178 ns/op
Iteration   1: 7.121 ns/op
Iteration   2: 7.110 ns/op
Iteration   3: 7.155 ns/op
Iteration   4: 7.157 ns/op
Iteration   5: 7.176 ns/op


Result "org.openjdk.bench.java.lang.StringOther.compareTo":
  7.130 ±(99.9%) 0.027 ns/op [Average]
  (min, avg, max) = (7.099, 7.130, 7.176), stdev = 0.025
  CI (99.9%): [7.103, 7.157] (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: 690.789 ns/op
# Warmup Iteration   2: 695.665 ns/op
# Warmup Iteration   3: 684.139 ns/op
# Warmup Iteration   4: 910.126 ns/op
# Warmup Iteration   5: 1192.552 ns/op
# Warmup Iteration   6: 1404.659 ns/op
# Warmup Iteration   7: 1592.178 ns/op
# Warmup Iteration   8: 1757.206 ns/op
# Warmup Iteration   9: 1885.201 ns/op
# Warmup Iteration  10: 2027.096 ns/op
Iteration   1: 2138.939 ns/op
Iteration   2: 2266.500 ns/op
Iteration   3: 2385.430 ns/op
Iteration   4: 2484.336 ns/op
Iteration   5: 2606.155 ns/op

# Run progress: 29.17% complete, ETA 00:04:20
# Fork: 2 of 3
# Warmup Iteration   1: 696.620 ns/op
# Warmup Iteration   2: 698.178 ns/op
# Warmup Iteration   3: 687.792 ns/op
# Warmup Iteration   4: 906.615 ns/op
# Warmup Iteration   5: 1194.699 ns/op
# Warmup Iteration   6: 1420.135 ns/op
# Warmup Iteration   7: 1598.611 ns/op
# Warmup Iteration   8: 1762.909 ns/op
# Warmup Iteration   9: 1911.581 ns/op
# Warmup Iteration  10: 2043.476 ns/op
Iteration   1: 2166.752 ns/op
Iteration   2: 2296.340 ns/op
Iteration   3: 2385.133 ns/op
Iteration   4: 2505.501 ns/op
Iteration   5: 2611.215 ns/op

# Run progress: 33.33% complete, ETA 00:04:05
# Fork: 3 of 3
# Warmup Iteration   1: 703.260 ns/op
# Warmup Iteration   2: 720.669 ns/op
# Warmup Iteration   3: 713.056 ns/op
# Warmup Iteration   4: 886.028 ns/op
# Warmup Iteration   5: 1181.698 ns/op
# Warmup Iteration   6: 1396.434 ns/op
# Warmup Iteration   7: 1585.894 ns/op
# Warmup Iteration   8: 1751.506 ns/op
# Warmup Iteration   9: 1883.964 ns/op
# Warmup Iteration  10: 2021.091 ns/op
Iteration   1: 2141.785 ns/op
Iteration   2: 2260.051 ns/op
Iteration   3: 2359.247 ns/op
Iteration   4: 2479.794 ns/op
Iteration   5: 2590.482 ns/op


Result "org.openjdk.bench.java.lang.StringOther.internUnique":
  2378.511 ±(99.9%) 176.258 ns/op [Average]
  (min, avg, max) = (2138.939, 2378.511, 2611.215), stdev = 164.872
  CI (99.9%): [2202.253, 2554.769] (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.511 ns/op
# Warmup Iteration   2: 27.409 ns/op
# Warmup Iteration   3: 26.737 ns/op
# Warmup Iteration   4: 27.359 ns/op
# Warmup Iteration   5: 27.382 ns/op
# Warmup Iteration   6: 27.300 ns/op
# Warmup Iteration   7: 27.180 ns/op
# Warmup Iteration   8: 27.194 ns/op
# Warmup Iteration   9: 27.276 ns/op
# Warmup Iteration  10: 26.196 ns/op
Iteration   1: 26.219 ns/op
Iteration   2: 26.314 ns/op
Iteration   3: 26.186 ns/op
Iteration   4: 26.504 ns/op
Iteration   5: 26.431 ns/op

# Run progress: 41.67% complete, ETA 00:03:34
# Fork: 2 of 3
# Warmup Iteration   1: 27.082 ns/op
# Warmup Iteration   2: 26.591 ns/op
# Warmup Iteration   3: 26.323 ns/op
# Warmup Iteration   4: 26.773 ns/op
# Warmup Iteration   5: 26.742 ns/op
# Warmup Iteration   6: 26.632 ns/op
# Warmup Iteration   7: 26.820 ns/op
# Warmup Iteration   8: 26.771 ns/op
# Warmup Iteration   9: 26.907 ns/op
# Warmup Iteration  10: 26.011 ns/op
Iteration   1: 25.982 ns/op
Iteration   2: 26.053 ns/op
Iteration   3: 26.188 ns/op
Iteration   4: 25.960 ns/op
Iteration   5: 26.140 ns/op

# Run progress: 45.83% complete, ETA 00:03:19
# Fork: 3 of 3
# Warmup Iteration   1: 27.288 ns/op
# Warmup Iteration   2: 27.050 ns/op
# Warmup Iteration   3: 26.629 ns/op
# Warmup Iteration   4: 26.941 ns/op
# Warmup Iteration   5: 26.953 ns/op
# Warmup Iteration   6: 26.933 ns/op
# Warmup Iteration   7: 26.828 ns/op
# Warmup Iteration   8: 26.963 ns/op
# Warmup Iteration   9: 26.843 ns/op
# Warmup Iteration  10: 26.320 ns/op
Iteration   1: 26.145 ns/op
Iteration   2: 26.107 ns/op
Iteration   3: 26.145 ns/op
Iteration   4: 26.126 ns/op
Iteration   5: 26.218 ns/op


Result "org.openjdk.bench.java.lang.StringOther.regionMatchesLatin1":
  26.181 ±(99.9%) 0.158 ns/op [Average]
  (min, avg, max) = (25.960, 26.181, 26.504), stdev = 0.147
  CI (99.9%): [26.024, 26.339] (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: 383.221 ns/op
# Warmup Iteration   2: 384.145 ns/op
# Warmup Iteration   3: 186.489 ns/op
# Warmup Iteration   4: 385.039 ns/op
# Warmup Iteration   5: 385.782 ns/op
# Warmup Iteration   6: 383.717 ns/op
# Warmup Iteration   7: 386.026 ns/op
# Warmup Iteration   8: 383.559 ns/op
# Warmup Iteration   9: 386.779 ns/op
# Warmup Iteration  10: 186.426 ns/op
Iteration   1: 186.458 ns/op
Iteration   2: 186.303 ns/op
Iteration   3: 187.232 ns/op
Iteration   4: 186.618 ns/op
Iteration   5: 188.988 ns/op

# Run progress: 54.17% complete, ETA 00:02:48
# Fork: 2 of 3
# Warmup Iteration   1: 382.730 ns/op
# Warmup Iteration   2: 383.619 ns/op
# Warmup Iteration   3: 186.757 ns/op
# Warmup Iteration   4: 382.995 ns/op
# Warmup Iteration   5: 386.450 ns/op
# Warmup Iteration   6: 383.026 ns/op
# Warmup Iteration   7: 386.532 ns/op
# Warmup Iteration   8: 388.434 ns/op
# Warmup Iteration   9: 383.317 ns/op
# Warmup Iteration  10: 186.436 ns/op
Iteration   1: 186.552 ns/op
Iteration   2: 187.692 ns/op
Iteration   3: 187.207 ns/op
Iteration   4: 188.653 ns/op
Iteration   5: 188.379 ns/op

# Run progress: 58.33% complete, ETA 00:02:33
# Fork: 3 of 3
# Warmup Iteration   1: 386.772 ns/op
# Warmup Iteration   2: 386.801 ns/op
# Warmup Iteration   3: 190.100 ns/op
# Warmup Iteration   4: 389.759 ns/op
# Warmup Iteration   5: 387.729 ns/op
# Warmup Iteration   6: 383.583 ns/op
# Warmup Iteration   7: 388.694 ns/op
# Warmup Iteration   8: 387.119 ns/op
# Warmup Iteration   9: 383.802 ns/op
# Warmup Iteration  10: 187.168 ns/op
Iteration   1: 186.468 ns/op
Iteration   2: 186.142 ns/op
Iteration   3: 186.300 ns/op
Iteration   4: 187.378 ns/op
Iteration   5: 188.505 ns/op


Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024LL":
  187.258 ±(99.9%) 1.038 ns/op [Average]
  (min, avg, max) = (186.142, 187.258, 188.988), stdev = 0.971
  CI (99.9%): [186.220, 188.297] (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: 1808.439 ns/op
# Warmup Iteration   2: 1767.006 ns/op
# Warmup Iteration   3: 2598.387 ns/op
# Warmup Iteration   4: 1766.816 ns/op
# Warmup Iteration   5: 1743.078 ns/op
# Warmup Iteration   6: 1756.696 ns/op
# Warmup Iteration   7: 1756.846 ns/op
# Warmup Iteration   8: 1743.495 ns/op
# Warmup Iteration   9: 1759.004 ns/op
# Warmup Iteration  10: 2583.316 ns/op
Iteration   1: 2578.140 ns/op
Iteration   2: 2586.399 ns/op
Iteration   3: 2595.297 ns/op
Iteration   4: 2577.773 ns/op
Iteration   5: 2590.910 ns/op

# Run progress: 66.67% complete, ETA 00:02:02
# Fork: 2 of 3
# Warmup Iteration   1: 1820.105 ns/op
# Warmup Iteration   2: 1761.995 ns/op
# Warmup Iteration   3: 2592.068 ns/op
# Warmup Iteration   4: 1750.519 ns/op
# Warmup Iteration   5: 1759.997 ns/op
# Warmup Iteration   6: 1766.899 ns/op
# Warmup Iteration   7: 1763.529 ns/op
# Warmup Iteration   8: 1766.331 ns/op
# Warmup Iteration   9: 1752.448 ns/op
# Warmup Iteration  10: 2579.290 ns/op
Iteration   1: 2583.389 ns/op
Iteration   2: 2595.761 ns/op
Iteration   3: 2580.752 ns/op
Iteration   4: 2591.410 ns/op
Iteration   5: 2605.863 ns/op

# Run progress: 70.83% complete, ETA 00:01:47
# Fork: 3 of 3
# Warmup Iteration   1: 1793.036 ns/op
# Warmup Iteration   2: 1758.022 ns/op
# Warmup Iteration   3: 2592.707 ns/op
# Warmup Iteration   4: 1749.634 ns/op
# Warmup Iteration   5: 1758.032 ns/op
# Warmup Iteration   6: 1748.079 ns/op
# Warmup Iteration   7: 1760.812 ns/op
# Warmup Iteration   8: 1755.140 ns/op
# Warmup Iteration   9: 1748.580 ns/op
# Warmup Iteration  10: 2586.600 ns/op
Iteration   1: 2583.574 ns/op
Iteration   2: 2593.630 ns/op
Iteration   3: 2587.690 ns/op
Iteration   4: 2599.723 ns/op
Iteration   5: 2597.187 ns/op


Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024LU":
  2589.833 ±(99.9%) 8.823 ns/op [Average]
  (min, avg, max) = (2577.773, 2589.833, 2605.863), stdev = 8.253
  CI (99.9%): [2581.010, 2598.657] (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: 1782.462 ns/op
# Warmup Iteration   2: 1752.012 ns/op
# Warmup Iteration   3: 2380.621 ns/op
# Warmup Iteration   4: 1743.210 ns/op
# Warmup Iteration   5: 1744.448 ns/op
# Warmup Iteration   6: 1755.656 ns/op
# Warmup Iteration   7: 1744.958 ns/op
# Warmup Iteration   8: 1747.890 ns/op
# Warmup Iteration   9: 1756.824 ns/op
# Warmup Iteration  10: 2386.359 ns/op
Iteration   1: 2375.206 ns/op
Iteration   2: 2381.558 ns/op
Iteration   3: 2378.714 ns/op
Iteration   4: 2375.443 ns/op
Iteration   5: 2384.942 ns/op

# Run progress: 79.17% complete, ETA 00:01:16
# Fork: 2 of 3
# Warmup Iteration   1: 1790.976 ns/op
# Warmup Iteration   2: 1749.313 ns/op
# Warmup Iteration   3: 2373.999 ns/op
# Warmup Iteration   4: 1727.657 ns/op
# Warmup Iteration   5: 1733.681 ns/op
# Warmup Iteration   6: 1745.252 ns/op
# Warmup Iteration   7: 1742.418 ns/op
# Warmup Iteration   8: 1736.290 ns/op
# Warmup Iteration   9: 1743.422 ns/op
# Warmup Iteration  10: 2379.393 ns/op
Iteration   1: 2375.139 ns/op
Iteration   2: 2374.890 ns/op
Iteration   3: 2375.229 ns/op
Iteration   4: 2378.850 ns/op
Iteration   5: 2396.568 ns/op

# Run progress: 83.33% complete, ETA 00:01:01
# Fork: 3 of 3
# Warmup Iteration   1: 1790.161 ns/op
# Warmup Iteration   2: 1755.700 ns/op
# Warmup Iteration   3: 2389.256 ns/op
# Warmup Iteration   4: 1734.317 ns/op
# Warmup Iteration   5: 1754.969 ns/op
# Warmup Iteration   6: 1752.956 ns/op
# Warmup Iteration   7: 1743.547 ns/op
# Warmup Iteration   8: 1742.636 ns/op
# Warmup Iteration   9: 1752.264 ns/op
# Warmup Iteration  10: 2371.152 ns/op
Iteration   1: 2382.148 ns/op
Iteration   2: 2378.250 ns/op
Iteration   3: 2372.130 ns/op
Iteration   4: 2380.523 ns/op
Iteration   5: 2385.087 ns/op


Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024UL":
  2379.645 ±(99.9%) 6.481 ns/op [Average]
  (min, avg, max) = (2372.130, 2379.645, 2396.568), stdev = 6.062
  CI (99.9%): [2373.164, 2386.126] (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: 385.542 ns/op
# Warmup Iteration   2: 402.016 ns/op
# Warmup Iteration   3: 188.558 ns/op
# Warmup Iteration   4: 391.182 ns/op
# Warmup Iteration   5: 404.047 ns/op
# Warmup Iteration   6: 391.660 ns/op
# Warmup Iteration   7: 387.864 ns/op
# Warmup Iteration   8: 401.734 ns/op
# Warmup Iteration   9: 390.811 ns/op
# Warmup Iteration  10: 193.879 ns/op
Iteration   1: 191.808 ns/op
Iteration   2: 190.770 ns/op
Iteration   3: 187.111 ns/op
Iteration   4: 190.040 ns/op
Iteration   5: 187.351 ns/op

# Run progress: 91.67% complete, ETA 00:00:30
# Fork: 2 of 3
# Warmup Iteration   1: 389.080 ns/op
# Warmup Iteration   2: 386.598 ns/op
# Warmup Iteration   3: 188.687 ns/op
# Warmup Iteration   4: 388.477 ns/op
# Warmup Iteration   5: 388.952 ns/op
# Warmup Iteration   6: 387.221 ns/op
# Warmup Iteration   7: 389.056 ns/op
# Warmup Iteration   8: 387.642 ns/op
# Warmup Iteration   9: 390.166 ns/op
# Warmup Iteration  10: 188.666 ns/op
Iteration   1: 187.776 ns/op
Iteration   2: 213.099 ns/op
Iteration   3: 198.493 ns/op
Iteration   4: 193.155 ns/op
Iteration   5: 190.390 ns/op

# Run progress: 95.83% complete, ETA 00:00:15
# Fork: 3 of 3
# Warmup Iteration   1: 390.556 ns/op
# Warmup Iteration   2: 388.024 ns/op
# Warmup Iteration   3: 188.315 ns/op
# Warmup Iteration   4: 388.357 ns/op
# Warmup Iteration   5: 385.902 ns/op
# Warmup Iteration   6: 385.977 ns/op
# Warmup Iteration   7: 385.849 ns/op
# Warmup Iteration   8: 386.678 ns/op
# Warmup Iteration   9: 386.514 ns/op
# Warmup Iteration  10: 187.926 ns/op
Iteration   1: 189.464 ns/op
Iteration   2: 188.584 ns/op
Iteration   3: 187.770 ns/op
Iteration   4: 188.467 ns/op
Iteration   5: 189.521 ns/op


Result "org.openjdk.bench.java.lang.StringOther.regionMatchesU1024UU":
  191.587 ±(99.9%) 7.069 ns/op [Average]
  (min, avg, max) = (187.111, 191.587, 213.099), stdev = 6.612
  CI (99.9%): [184.518, 198.655] (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.617 ±   2.106  ns/op
StringOther.compareTo             avgt   15     7.130 ±   0.027  ns/op
StringOther.internUnique          avgt   15  2378.511 ± 176.258  ns/op
StringOther.regionMatchesLatin1   avgt   15    26.181 ±   0.158  ns/op
StringOther.regionMatchesU1024LL  avgt   15   187.258 ±   1.038  ns/op
StringOther.regionMatchesU1024LU  avgt   15  2589.833 ±   8.823  ns/op
StringOther.regionMatchesU1024UL  avgt   15  2379.645 ±   6.481  ns/op
StringOther.regionMatchesU1024UU  avgt   15   191.587 ±   7.069  ns/op


</p>
</details>

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

PR: https://git.openjdk.java.net/jdk/pull/8308

Reply via email to