Skip to content

4.99.0

Choose a tag to compare

@jdereg jdereg released this 31 Mar 00:47
· 115 commits to master since this release

4.99.0 - 2026-03-28

  • FEATURE: New StringUtilities.getChars(String s) — public API that returns a ThreadLocal char[] buffer populated via String.getChars() (SIMD-optimized bulk copy). Callers can replace str.charAt(i) loops with direct buf[i] array access.
  • PERFORMANCE: StringUtilities.hashCodeIgnoreCase(String) — uses StringUtilities.getChars() into a ThreadLocal char[] buffer, then hashes from the array directly. CaseInsensitiveMap GET improved 70-75%, PUT improved 48-52%, and MIXED-CASE GET improved 68% on 100K entries.
  • PERFORMANCE: New FastReader.readLine(char[] dest, int off, int maxLen) — dedicated line-reading method optimized for TOON's line-oriented parsing. Combines scanning, copying, and line-ending consumption into a single call. JFR shows TOON line-reading improved 28%.
  • PERFORMANCE: FastReader.readUntil() pushback drain loop now uses a local variable for pushbackPosition, avoiding load/store through this on each iteration. JFR shows 14.8% reduction in FastReader CPU share.
  • PERFORMANCE: FastReader.readUntil() replaced Math.min() with inline ternary in tight buffer-scan loop. JFR confirmed 3.5% wall-clock improvement.
  • PERFORMANCE: FastReader.readUntil() now caches this.limit into a local variable after fill(). JFR shows readUntil self-time dropped ~15%.
  • PERFORMANCE: FastReader.fill() extracted core I/O into refill() which uses a local int n for the in.read() result, reducing PUTFIELD/GETFIELD overhead.