Integrated: 8316582: Minor startup regression in 22-b15 due JDK-8310929
温绍锦
duke at openjdk.org
Thu Sep 21 22:58:17 UTC 2023
On Wed, 20 Sep 2023 09:12:48 GMT, Claes Redestad <redestad at openjdk.org> wrote:
> This patch reverts the use of `ByteArrayLittleEndian` in `StringLatin1`.
>
> This use is the cause of a small (~1.5ms) startup regression in 22-b15. While a manageable startup regression in and of itself, the use of `VarHandles` in core utility classes brings an increased risk of bootstrap circularity issues, for example disqualifying the use of things like `Integers.toString` in some places.
>
> Reverting this partially rolls back the performance improvement gained by JDK-8310929. It seems reasonable that the compiler can be enhanced to gain that loss back.
digitPair and Unsafe.putShort are a good combination. Can Unsafe be used here?
public static void writeDigitPair(byte[] buf, int charPos, int value) {
Unsafe.putShortUnaligned(
buf,
Unsafe.ARRAY_BYTE_BASE_OFFSET + pos,
digitPair(value),
false);
}
-------------
PR Comment: https://git.openjdk.org/jdk/pull/15836#issuecomment-1730456039
More information about the core-libs-dev
mailing list