<i18n dev> RFR: 8349189: Speed up DateTime parse & format via Class File API
Shaojin Wen
swen at openjdk.org
Sun Feb 2 17:37:43 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.
-------------
Commit messages:
- code style
- simplify & code style
- fix comment
- fix comment
- support OffsetTime
- fix comments
- optimize parseOffsetDateTime
- optimize nano3
- Generate PrinterParser using bytecode
- add benchmark
Changes: https://git.openjdk.org/jdk/pull/23384/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23384&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8349189
Stats: 1687 lines in 9 files changed: 1543 ins; 88 del; 56 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