On Mon, 15 Feb 2021 15:19:01 GMT, Claes Redestad <redes...@openjdk.org> wrote:
>> This patch exposes a couple of intrinsics used by String to speed up ASCII >> checking and byte[] -> char[] inflation, which can be used by latin1 and >> ASCII-compatible CharsetDecoders to speed up decoding operations. >> >> - Fast-path implemented for all standard charsets, with up to 10x >> performance improvements in microbenchmarks reading Strings from >> ByteArrayInputStream. >> - Cleanup of StreamDecoder/-Encoder with some minor improvements when >> interpreting >> - Reworked creation of JavaLangAccess to be safely published for >> CharsetDecoders/-Encoders used for setting up System.out/in. As JLA and >> these encoders are created during System.initPhase1 the current sequence >> caused the initialization to became unstable and a few tests were >> consistently getting an NPE. >> >> Testing: tier1-3 > > Claes Redestad has updated the pull request incrementally with one additional > commit since the last revision: > > Revert rem assertions Great improvement! Looks good to me overall. I wondered about the changes in JLA as Alan already mentioned. src/java.base/share/classes/java/lang/String.java line 1017: > 1015: * @return the number of bytes successfully decoded, at most len > 1016: */ > 1017: /* package-private */ Some more explanation would be helpful here, as it is accessed from System for shared secrets. src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java line 48: > 46: import jdk.internal.module.ServicesCatalog; > 47: import jdk.internal.reflect.ConstantPool; > 48: import jdk.internal.vm.annotation.IntrinsicCandidate; Not needed. ------------- PR: https://git.openjdk.java.net/jdk/pull/2574