> 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.

Shaojin Wen has refreshed the contents of this pull request, and previous 
commits have been removed. The incremental views will show differences compared 
to the previous content of the PR. The pull request contains one new commit 
since the last revision:

  Optimize parseInt/parseLong by inlining digit2 logic
  
  - Inline DecimalDigits.digit2() to avoid method call overhead
  - Remove dependency on lookup tables, use direct calculation
  - Simplify conditional checks in parsing loops
  - CodeSize remains < 325 (JIT inlineable)
  - Performance: Integer.parseInt +6.7%, Long.parseLong +7.1%

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/22919/files
  - new: https://git.openjdk.org/jdk/pull/22919/files/1a885c85..2ea91b05

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=22919&range=28
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22919&range=27-28

  Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 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