RFR: 8311220: Optimization for StringLatin UpperLower
温绍锦
duke at openjdk.org
Mon Jul 3 04:09:00 UTC 2023
# Benchmark Result
sh make/devkit/createJMHBundle.sh
bash configure --with-jmh=build/jmh/jars
make test TEST="micro:java.lang.StringUpperLower.*"
## 1. [aliyun_ecs_c8i.xlarge](https://help.aliyun.com/document_detail/25378.html#c8i)
* cpu : intel xeon sapphire rapids (x64)
``` diff
-Benchmark Mode Cnt Score Error Units (baseline)
-StringUpperLower.lowerToLower avgt 15 27.180 ± 0.017 ns/op
-StringUpperLower.lowerToUpper avgt 15 47.196 ± 0.066 ns/op
-StringUpperLower.mixedToLower avgt 15 32.307 ± 0.072 ns/op
-StringUpperLower.mixedToUpper avgt 15 44.005 ± 0.414 ns/op
-StringUpperLower.upperToLower avgt 15 32.310 ± 0.033 ns/op
-StringUpperLower.upperToUpper avgt 15 42.053 ± 0.341 ns/op
+Benchmark Mode Cnt Score Error Units
+StringUpperLower.lowerToLower avgt 15 16.976 ± 0.043 ns/op (+60.160)
+StringUpperLower.lowerToUpper avgt 15 46.373 ± 0.086 ns/op (+1.77%)
+StringUpperLower.mixedToLower avgt 15 32.018 ± 0.061 ns/op (+0.9%)
+StringUpperLower.mixedToUpper avgt 15 42.019 ± 0.473 ns/op (+4.72%)
+StringUpperLower.upperToLower avgt 15 32.052 ± 0.051 ns/op (+0.8%)
+StringUpperLower.upperToUpper avgt 15 16.978 ± 0.190 ns/op (+47.69%)
## 2. [aliyun_ecs_c8a.xlarge](https://help.aliyun.com/document_detail/25378.html#c8a)
* cpu : amd epc genoa (x64)
``` diff
-Benchmark Mode Cnt Score Error Units (baseline)
-StringUpperLower.lowerToLower avgt 15 22.164 ± 0.021 ns/op
-StringUpperLower.lowerToUpper avgt 15 46.113 ± 0.047 ns/op
-StringUpperLower.mixedToLower avgt 15 28.501 ± 0.037 ns/op
-StringUpperLower.mixedToUpper avgt 15 38.782 ± 0.038 ns/op
-StringUpperLower.upperToLower avgt 15 28.625 ± 0.162 ns/op
-StringUpperLower.upperToUpper avgt 15 27.960 ± 0.038 ns/op
+Benchmark Mode Cnt Score Error Units
+StringUpperLower.lowerToLower avgt 15 15.273 ± 0.012 ns/op (+45.18%)
+StringUpperLower.lowerToUpper avgt 15 46.939 ± 0.037 ns/op (-1.75%)
+StringUpperLower.mixedToLower avgt 15 27.978 ± 0.015 ns/op (+1.86%)
+StringUpperLower.mixedToUpper avgt 15 38.120 ± 0.047 ns/op (+1.73%)
+StringUpperLower.upperToLower avgt 15 27.994 ± 0.053 ns/op (+2.25%)
+StringUpperLower.upperToUpper avgt 15 17.405 ± 0.006 ns/op (+60.64%)
## 3. [aliyun_ecs_c8y.xlarge](https://help.aliyun.com/document_detail/25378.html#c8y)
* cpu : aliyun yitian 710 (aarch64)
``` diff
-Benchmark Mode Cnt Score Error Units (baseline)
-StringUpperLower.lowerToLower avgt 15 29.035 ± 0.142 ns/op
-StringUpperLower.lowerToUpper avgt 15 85.791 ± 0.387 ns/op
-StringUpperLower.mixedToLower avgt 15 40.410 ± 1.023 ns/op
-StringUpperLower.mixedToUpper avgt 15 72.904 ± 0.682 ns/op
-StringUpperLower.upperToLower avgt 15 40.495 ± 0.990 ns/op
-StringUpperLower.upperToUpper avgt 15 39.665 ± 0.036 ns/op
+Benchmark Mode Cnt Score Error Units
+StringUpperLower.lowerToLower avgt 15 23.222 ± 0.035 ns/op (+25.03%)
+StringUpperLower.lowerToUpper avgt 15 84.958 ± 0.725 ns/op (+0.98%)
+StringUpperLower.mixedToLower avgt 15 40.931 ± 0.947 ns/op (-1.27%)
+StringUpperLower.mixedToUpper avgt 15 71.845 ± 1.128 ns/op (+1.47%)
+StringUpperLower.upperToLower avgt 15 40.967 ± 1.430 ns/op (-1.52%)
+StringUpperLower.upperToUpper avgt 15 17.545 ± 0.159 ns/op (+126.07%)
## 4. MacBookPro M1 Pro
``` diff
-Benchmark Mode Cnt Score Error Units (baseline)
-StringUpperLower.lowerToLower avgt 15 22.454 ± 0.160 ns/op
-StringUpperLower.lowerToUpper avgt 15 60.394 ± 8.811 ns/op
-StringUpperLower.mixedToLower avgt 15 57.825 ± 10.782 ns/op
-StringUpperLower.mixedToUpper avgt 15 57.414 ± 7.899 ns/op
-StringUpperLower.upperToLower avgt 15 55.500 ± 10.547 ns/op
-StringUpperLower.upperToUpper avgt 15 24.637 ± 0.146 ns/op
+Benchmark Mode Cnt Score Error Units
+StringUpperLower.lowerToLower avgt 15 15.854 ± 0.032 ns/op (+41.62%)
+StringUpperLower.lowerToUpper avgt 15 48.417 ± 0.305 ns/op (+24.73%)
+StringUpperLower.mixedToLower avgt 15 36.338 ± 0.346 ns/op (+59.13%)
+StringUpperLower.mixedToUpper avgt 15 42.371 ± 0.376 ns/op (+35.50%)
+StringUpperLower.upperToLower avgt 15 36.342 ± 0.324 ns/op (+52.71%)
+StringUpperLower.upperToUpper avgt 15 11.149 ± 0.018 ns/op (+120.97%)
## 5. [Orange Pi 5 Plus](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-plus.html)
CPU : Rockchip RK3588 (aarch64)
``` diff
-Benchmark Mode Cnt Score Error Units (baseline)
-StringUpperLower.lowerToLower avgt 15 64.597 ± 0.211 ns/op
-StringUpperLower.lowerToUpper avgt 15 146.723 ± 1.420 ns/op
-StringUpperLower.mixedToLower avgt 15 78.629 ± 0.589 ns/op
-StringUpperLower.mixedToUpper avgt 15 124.889 ± 1.358 ns/op
-StringUpperLower.upperToLower avgt 15 78.981 ± 1.318 ns/op
-StringUpperLower.upperToUpper avgt 15 61.466 ± 0.150 ns/op
+Benchmark Mode Cnt Score Error Units
+StringUpperLower.lowerToLower avgt 15 41.060 ± 0.254 ns/op (+57.32%)
+StringUpperLower.lowerToUpper avgt 15 136.750 ± 4.522 ns/op (+7.29%)
+StringUpperLower.mixedToLower avgt 15 77.984 ± 0.953 ns/op (+8.27%)
+StringUpperLower.mixedToUpper avgt 15 121.449 ± 1.466 ns/op (+2.83%)
+StringUpperLower.upperToLower avgt 15 77.787 ± 0.722 ns/op (+1.53%)
+StringUpperLower.upperToUpper avgt 15 30.798 ± 0.145 ns/op (+99.57%)
-------------
Commit messages:
- optimization for StringLatin1 UpperLower
Changes: https://git.openjdk.org/jdk/pull/14751/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14751&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8311220
Stats: 7 lines in 1 file changed: 0 ins; 3 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/14751.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14751/head:pull/14751
PR: https://git.openjdk.org/jdk/pull/14751
More information about the core-libs-dev
mailing list