> On Jan 29, 2018, at 9:44 AM, Martin Buchholz <marti...@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.redes...@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
>> 

Reply via email to