RFR: 8310929: Optimization for Integer.toString [v16]
温绍锦
duke at openjdk.org
Fri Sep 1 18:39:18 UTC 2023
> Optimization for:
> Integer.toString
> Long.toString
> StringBuilder#append(int)
>
> # Benchmark Result
>
>
> sh make/devkit/createJMHBundle.sh
> bash configure --with-jmh=build/jmh/jars
> make test TEST="micro:java.lang.Integers.toString*"
> make test TEST="micro:java.lang.Longs.toString*"
> make test TEST="micro:java.lang.StringBuilders.toStringCharWithInt8"
>
>
> ## 1. [aliyun_ecs_c8i.xlarge](https://help.aliyun.com/document_detail/25378.html#c8i)
> * cpu : intel xeon sapphire rapids (x64)
>
> ``` diff
> -Benchmark (size) Mode Cnt Score Error Units (baseline)
> -Integers.toStringBig 500 avgt 15 6.825 ± 0.023 us/op
> -Integers.toStringSmall 500 avgt 15 4.823 ± 0.023 us/op
> -Integers.toStringTiny 500 avgt 15 3.878 ± 0.101 us/op
>
> +Benchmark (size) Mode Cnt Score Error Units (PR Update 04 f4aa1989)
> +Integers.toStringBig 500 avgt 15 6.002 ± 0.054 us/op (+13.71%)
> +Integers.toStringSmall 500 avgt 15 4.025 ± 0.020 us/op (+19.82%)
> +Integers.toStringTiny 500 avgt 15 3.874 ± 0.067 us/op (+0.10%)
>
> -Benchmark (size) Mode Cnt Score Error Units (baseline)
> -Longs.toStringBig 500 avgt 15 9.224 ± 0.021 us/op
> -Longs.toStringSmall 500 avgt 15 4.621 ± 0.087 us/op
>
> +Benchmark (size) Mode Cnt Score Error Units (PR Update 04 f4aa1989)
> +Longs.toStringBig 500 avgt 15 7.483 ± 0.018 us/op (+23.26%)
> +Longs.toStringSmall 500 avgt 15 4.020 ± 0.016 us/op (+14.95%)
>
> -Benchmark Mode Cnt Score Error Units (baseline)
> -StringBuilders.toStringCharWithInt8 avgt 15 89.327 ± 0.733 ns/op
>
> +Benchmark Mode Cnt Score Error Units (PR Update 04 f4aa1989)
> +StringBuilders.toStringCharWithInt8 avgt 15 36.639 ± 0.422 ns/op (+143.80%)
>
>
>
> ## 2. [aliyun_ecs_c8a.xlarge](https://help.aliyun.com/document_detail/25378.html#c8a)
> * cpu : amd epc genoa (x64)
>
> ``` diff
> -Benchmark (size) Mode Cnt Score Error Units (baseline)
> -Integers.toStringBig 500 avgt 15 6.753 ± 0.007 us/op
> -Integers.toStringSmall 500 avgt 15 4.470 ± 0.005 us/op
> -Integers.toStringTiny 500 avgt 15 2.764 ± 0.020 us/op
>
> +Benchmark (size) Mode Cnt Score Error Units (PR Update 04 f4aa1989)
> +Integers.toStringBig 500 avgt 15 5.036 ± 0.005 us/op (+34.09%)
> +Integers.toStringSmall 500 avgt 15 3.491 ± 0.025 us/op (+28.04%)
> +Integers.toStringTiny 5...
温绍锦 has updated the pull request incrementally with 736 additional commits since the last revision:
- 8303427: Fixpath confused if unix root contains "/jdk"
Reviewed-by: mikael
- 8314319: LogCompilation doesn't reset lateInlining when it encounters a failure.
Reviewed-by: ecaspole, kvn
- 8258970: Disabled JPasswordField foreground color is wrong with GTK LAF
Reviewed-by: tr, dnguyen, psadhukhan
- 8315195: RISC-V: Update hwprobe query for new extensions
Reviewed-by: fyang, fjiang, luhenry
- 8315446: G1: Remove unused G1AllocRegion::attempt_allocation
Reviewed-by: iwalulya, tschatzl
- 8315098: Improve URLEncodeDecode microbenchmark
Reviewed-by: ecaspole, dfuchs
- 8315321: [aix] os::attempt_reserve_memory_at must map at the requested address or fail
Reviewed-by: mdoerr
- 8315436: HttpsServer does not send TLS alerts
Reviewed-by: dfuchs, michaelm
- 8315069: Relativize extended_sp in interpreter frames
Reviewed-by: haosun, aph, fyang
- 8313983: jmod create --target-platform should replace existing ModuleTarget attribute
Reviewed-by: alanb, mchung
- ... and 726 more: https://git.openjdk.org/jdk/compare/cf2f8395...a635f903
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/14699/files
- new: https://git.openjdk.org/jdk/pull/14699/files/cf2f8395..a635f903
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=14699&range=15
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=14699&range=14-15
Stats: 156684 lines in 3194 files changed: 65663 ins; 71956 del; 19065 mod
Patch: https://git.openjdk.org/jdk/pull/14699.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14699/head:pull/14699
PR: https://git.openjdk.org/jdk/pull/14699
More information about the core-libs-dev
mailing list