Integrated: 8302863: Speed up String::encodeASCII using countPositives

Claes Redestad redestad at openjdk.org
Tue Feb 21 13:34:37 UTC 2023


On Sat, 18 Feb 2023 23:26:08 GMT, Claes Redestad <redestad at openjdk.org> wrote:

> When encoding Strings to US-ASCII we can speed up the happy path significantly by using `StringCoding.countPositives` as a speculative check for whether there are any chars that needs to be replaced by `'?'`. Once a non-ASCII char is encountered we fall back to the slow loop and replace as needed.
> 
> An alternative could be unrolling or using a byte array VarHandle, as show-cased by Brett Okken here: https://mail.openjdk.org/pipermail/core-libs-dev/2023-February/100573.html Having to replace chars with `?` is essentially an encoding error so it might be safe to assume this case is exceptional in practice.

This pull request has now been integrated.

Changeset: 92dfa117
Author:    Claes Redestad <redestad at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/92dfa1175e4898fc491115e004380780b6862473
Stats:     24 lines in 1 file changed: 11 ins; 2 del; 11 mod

8302863: Speed up String::encodeASCII using countPositives

Reviewed-by: alanb

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

PR: https://git.openjdk.org/jdk/pull/12640


More information about the core-libs-dev mailing list