RFR: 8355177: Speed up StringBuilder::append(char[]) via Unsafe::copyMemory [v8]
Shaojin Wen
swen at openjdk.org
Sun Jul 27 04:40:03 UTC 2025
On Thu, 24 Jul 2025 15:17:34 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:
>> Shaojin Wen has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Update src/java.base/share/classes/java/lang/StringUTF16.java
>>
>> Co-authored-by: Chen Liang <liach at openjdk.org>
>
> src/java.base/share/classes/java/lang/StringUTF16.java line 1489:
>
>> 1487: Unsafe.ARRAY_CHAR_BASE_OFFSET + ((long) off << 1),
>> 1488: val,
>> 1489: Unsafe.ARRAY_BYTE_BASE_OFFSET + ((long) index << 1),
>
> Suggestion:
>
> Unsafe.ARRAY_BYTE_BASE_OFFSET + ((long) index << 1) * Unsafe.ARRAY_BYTE_INDEX_SCALE,
If we want to use ARRAY_CHAR_INDEX_SCALE, it should be used as follows
Unsafe.getUnsafe().copyMemory(
ca,
Unsafe.ARRAY_CHAR_BASE_OFFSET + (long) off * Unsafe.ARRAY_CHAR_INDEX_SCALE,
val,
Unsafe.ARRAY_CHAR_BASE_OFFSET + (long) off * Unsafe.ARRAY_CHAR_INDEX_SCALE,
(long) (end - off) << 1);
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24773#discussion_r2233670252
More information about the core-libs-dev
mailing list