This is an optimization for decimal Integer.parseInt and Long.parseLong, which 
improves performance by about 10%. The optimization includes:
1. Improve performance by parsing 2 numbers at a time, which has performance 
improvements for numbers with length >= 3.
2. It uses charAt(0) for the first number. Assuming that the optimization can 
eliminate boundary checks, this will be more friendly to parsing numbers with 
length 1.
3. It removes the reliance on the Character.digit method and eliminates the 
reliance on the CharacterDataLatin1#DIGITS cache array, which avoids 
performance degradation caused by cache misses.

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

Commit messages:
 - optimize parseInt & parseLong
 - optimize parseInt & parseLong
 - reuse isDigit
 - optimize parseInt
 - optimize parseLong
 - add benchmark

Changes: https://git.openjdk.org/jdk/pull/22919/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22919&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8347009
  Stats: 141 lines in 4 files changed: 65 ins; 16 del; 60 mod
  Patch: https://git.openjdk.org/jdk/pull/22919.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22919/head:pull/22919

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

Reply via email to