-
Bug
-
Resolution: Fixed
-
P3
-
17, 18
-
b17
-
x86
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8278002 | 17.0.3-oracle | Claes Redestad | P3 | Resolved | Fixed | b01 |
JDK-8277642 | 17.0.2 | Claes Redestad | P3 | Resolved | Fixed | b07 |
Analysis shows there's a regression to the UTF-8 CharsetEncoder caused by CompactStrings in JDK 9, while much of the performance difference between UTF_8$Encoder and String.getBytes(UTF-8) is really due to the latter taking advantage of some optimized intrinsics and seeing a large speed-up in JDK 9.
Still, to fix the regression it made most sense to explore ways to take advantage of the existing intrinsics from various CharsetEncoders. The best result comes from extending the ISO_8859_1.implEncodeISOArray intrinsic to work also for ASCII encoding, which makes UTF_8$Encoder perform on par with (or outperform) string.getBytes(UTF-8). Extending the intrinsic on all platforms appear feasible, but it was only straightforward on x86. Since it doesn't seem reasonable to hold this fix up until implemented on all supported platforms I've limited it to x86 and will file follow-ups for the other platforms.
- backported by
-
JDK-8277642 Implement fast-path for ASCII-compatible CharsetEncoders on x86
-
- Resolved
-
-
JDK-8278002 Implement fast-path for ASCII-compatible CharsetEncoders on x86
-
- Resolved
-
- blocks
-
JDK-8277846 Implement fast-path for ASCII-compatible CharsetEncoders on ppc64
-
- Resolved
-
-
JDK-8274243 Implement fast-path for ASCII-compatible CharsetEncoders on aarch64
-
- Resolved
-
-
JDK-8275863 Use encodeASCII for ASCII-compatible DoubleByte encodings
-
- Resolved
-
- links to
-
Commit openjdk/jdk17u/14a1f2af
-
Commit openjdk/jdk/aaa36cc0
-
Review openjdk/jdk17u/310
-
Review openjdk/jdk/5621