On Tue, 12 Nov 2024 01:25:16 GMT, Shaojin Wen <s...@openjdk.org> wrote:
> This PR is a resubmission after PR #21593 was rolled back, and the unsafe > offset overflow issue has been fixed. > > Move getChars methods of StringLatin1 and StringUTF16 to DecimalDigits to > reduce duplication > > HexDigits and OctalDigits also include getCharsLatin1 and getCharsUTF16 > > Putting these two methods into DecimalDigits can avoid the need to expose > them in JavaLangAccess > Eliminate duplicate code in BigDecimal > > This PR will improve the performance of Integer/Long.toString and > StringBuilder.append(int/long) scenarios. This is because Unsafe.putByte is > used to eliminate array bounds checks, and of course this elimination is safe. > > In previous versions, in Integer/Long.toString and > StringBuilder.append(int/long) scenarios, -COMPACT_STRING performed better > than +COMPACT_STRING. This is because StringUTF16.getChars uses > StringUTF16.putChar, which is similar to Unsafe.putChar, and there is no > bounds check. @wenshao you need a new JBS issue to complete this work under. ------------- PR Comment: https://git.openjdk.org/jdk/pull/22023#issuecomment-2469426151