<i18n dev> RFR: 8349189: Speed up DateTime parse & format via Class File API [v4]

Shaojin Wen swen at openjdk.org
Mon Feb 3 14:37:30 UTC 2025


> By using the Class File API to dynamically generate a CompositePrinterParser, and defining DateTimePrinterParser[] printerParsers as a specific field, C2 can do TypeProfile optimization.
> 
> Since the CompositePrinterParser is generated based on the pattern, we can make the following optimizations:
> 
> 1. For example, for the parse and print of Month/DayOfMonth/Hour/Minute/Second with a fixed length of 2, do targeted parse and print optimization.
> 
> 2. Parse uses LocalDate/LocalTime/LocalDateTime/OffsetDateTime for TemporalQuery to avoid the overhead of constructing DateTimeParseContext.
> 
> These optimizations can significantly improve performance, with more than 100% performance improvement in many scenarios.

Shaojin Wen has updated the pull request incrementally with one additional commit since the last revision:

  use get & formatInt

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23384/files
  - new: https://git.openjdk.org/jdk/pull/23384/files/5388a40e..c44d03b5

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23384&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23384&range=02-03

  Stats: 21 lines in 1 file changed: 1 ins; 11 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/23384.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23384/head:pull/23384

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


More information about the i18n-dev mailing list