RFR: 8301958: Reduce Arrays.copyOf/-Range overheads [v9]
David Schlosnagle
duke at openjdk.org
Wed Feb 8 14:59:51 UTC 2023
On Wed, 8 Feb 2023 10:53:22 GMT, Claes Redestad <redestad at openjdk.org> wrote:
>> This patch adds special-cases to `Arrays.copyOf` and `Arrays.copyOfRange` to clone arrays when `newLength` or range inputs span the input array. 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:
>
> Add offset param to micro, reduce number of configurations and variants
Marked as reviewed by schlosna at github.com (no known OpenJDK username).
-------------
PR: https://git.openjdk.org/jdk/pull/12453
More information about the core-libs-dev
mailing list