RFR: 8301958: Reduce Arrays.copyOf/-Range overheads [v10]
Claes Redestad
redestad at openjdk.org
Mon Feb 13 09:59:52 UTC 2023
> This patch adds special-cases to `Arrays.copyOf` and `Arrays.copyOfRange` to copy arrays more efficiently when exactly the whole input array is to be copied. This helps eliminate range checks and has been verified to help various String operations. Example:
>
> Baseline
>
> Benchmark (size) Mode Cnt Score Error Units
> StringConstructor.newStringFromArray 7 avgt 15 16.817 ± 0.369 ns/op
> StringConstructor.newStringFromArrayWithCharset 7 avgt 15 16.866 ± 0.449 ns/op
> StringConstructor.newStringFromArrayWithCharsetName 7 avgt 15 22.198 ± 0.396 ns/op
>
> Patch:
>
> Benchmark (size) Mode Cnt Score Error Units
> StringConstructor.newStringFromArray 7 avgt 15 14.666 ± 0.336 ns/op
> StringConstructor.newStringFromArrayWithCharset 7 avgt 15 14.582 ± 0.288 ns/op
> StringConstructor.newStringFromArrayWithCharsetName 7 avgt 15 20.339 ± 0.328 ns/op
Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:
Address review comments
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12453/files
- new: https://git.openjdk.org/jdk/pull/12453/files/350612d4..1031dd85
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12453&range=09
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12453&range=08-09
Stats: 31 lines in 1 file changed: 7 ins; 8 del; 16 mod
Patch: https://git.openjdk.org/jdk/pull/12453.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12453/head:pull/12453
PR: https://git.openjdk.org/jdk/pull/12453
More information about the core-libs-dev
mailing list