RFR: 8196331: Optimize Character.digit for latin1 input (original) (raw)
Paul Sandoz paul.sandoz at oracle.com
Mon Jan 29 18:14:44 UTC 2018
- Previous message: RFR: 8196331: Optimize Character.digit for latin1 input
- Next message: RFR: 8196331: Optimize Character.digit for latin1 input
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jan 29, 2018, at 9:44 AM, Martin Buchholz <martinrb at google.com> wrote:
Thanks. I might try to shrink the size of the static array, by only storing values between '0' and 'z', at the cost of slightly greater lookup costs for each char.
I was wondering the same, or just clip the end of the array to’z'
if (ch <= ‘z’ && radix …) { // Might even fold the upper bounds check for DIGITS value = DIGITS[ch]; ... }
Paul.
On Mon, Jan 29, 2018 at 3:15 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
Hi,
for the latin1 block of CharacterData we can improve the digit(int, int) implementation by providing an optimized lookup table. This improves microbenchmarks exercising Integer.parseInt, Long.parseLong and UUID.fromString etc by around 50%for typical inputs. Webrev: http://cr.openjdk.java.net/~redestad/8196331/open.00/ Bug: https://bugs.openjdk.java.net/browse/JDK-8196331 The lookup array is pre-calculated to minimize startup impact (adds 1,027 bytecodes executed during initialization) /Claes
- Previous message: RFR: 8196331: Optimize Character.digit for latin1 input
- Next message: RFR: 8196331: Optimize Character.digit for latin1 input
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]