RFR: 8311207: Optimization for j.u.UUID.toString
Chen Liang
liach at openjdk.org
Sat Jul 1 02:11:53 UTC 2023
On Sat, 1 Jul 2023 01:44:15 GMT, 温绍锦 <duke at openjdk.org> wrote:
> [PR 14578 ](https://github.com/openjdk/jdk/pull/14578) still has unresolved discussions, continue to make improvements.
>
> # Benchmark Result
>
>
> sh make/devkit/createJMHBundle.sh
> bash configure --with-jmh=build/jmh/jars
> make test TEST="micro:java.util.UUIDBench.toString"
>
>
> ## 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)
> -UUIDBench.toString 20000 thrpt 15 62.019 ± 0.622 ops/us
>
> +Benchmark (size) Mode Cnt Score Error Units
> +UUIDBench.toString 20000 thrpt 15 82.998 ± 0.739 ops/us (+33.82%)
>
>
> ## 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)
> -UUIDBench.toString 20000 thrpt 15 88.668 ± 0.672 ops/us
>
> +Benchmark (size) Mode Cnt Score Error Units
> +UUIDBench.toString 20000 thrpt 15 89.229 ± 0.271 ops/us (+0.63%)
>
>
>
> ## 3. [aliyun_ecs_c8y.xlarge](https://help.aliyun.com/document_detail/25378.html#c8y)
> * cpu : aliyun yitian 710 (aarch64)
> ``` diff
> -Benchmark (size) Mode Cnt Score Error Units (baseline)
> -UUIDBench.toString 20000 thrpt 15 49.382 ± 2.160 ops/us
>
> +Benchmark (size) Mode Cnt Score Error Units
> +UUIDBench.toString 20000 thrpt 15 49.636 ± 1.974 ops/us (+0.51%)
>
>
> ## 4. MacBookPro M1 Pro
> ``` diff
> -Benchmark (size) Mode Cnt Score Error Units (baseline)
> -UUIDBench.toString 20000 thrpt 15 103.543 ± 0.963 ops/us
>
> +Benchmark (size) Mode Cnt Score Error Units
> +UUIDBench.toString 20000 thrpt 15 110.976 ± 0.685 ops/us (+7.17%)
>
>
> ## 5. Orange Pi 5 Plus
>
> ``` diff
> -Benchmark (size) Mode Cnt Score Error Units (baseline)
> -UUIDBench.toString 20000 thrpt 15 33.532 ± 0.396 ops/us
>
> +Benchmark (size) Mode Cnt Score Error Units (PR)
> +UUIDBench.toString 20000 thrpt 15 33.054 ± 0.190 ops/us (-4.42%)
Is using `Unsafe` directly consistently faster than using ByteArray? It should have similar performance as ByteArray's VarHandle is simply a wrapper around Unsafe's put/get methods.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/14745#issuecomment-1615360439
More information about the core-libs-dev
mailing list