Integrated: 8261744: Implement CharsetDecoder ASCII and latin-1 fast-paths

Claes Redestad redestad at openjdk.java.net
Fri Feb 19 15:08:43 UTC 2021


On Mon, 15 Feb 2021 11:22:10 GMT, Claes Redestad <redestad at 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

This pull request has now been integrated.

Changeset: 433096a4
Author:    Claes Redestad <redestad at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/433096a4
Stats:     557 lines in 13 files changed: 296 ins; 106 del; 155 mod

8261744: Implement CharsetDecoder ASCII and latin-1 fast-paths

Reviewed-by: naoto, alanb

-------------

PR: https://git.openjdk.java.net/jdk/pull/2574


More information about the core-libs-dev mailing list