RFR: 8373566: Performance regression with java.text.MessageFormat subformat patterns [v3]

Justin Lu jlu at openjdk.org
Fri Dec 12 22:57:14 UTC 2025


> This PR addresses a performance degradation when constructing a new MessageFormat that contains a subformat with a pattern that is not a predefined style. This is due to internal logic which catches an IAE specifically for subformat patterns. Perf tests for choice and number are not grouped, since performance is directly tied to subformat creation.
> 
> M1 Mac - Perf (before):
> 
> 
> MessageFormatterBench.testSubformatChoice  thrpt   15   865.430 ±  6.766  ops/ms
> MessageFormatterBench.testSubformatNumber  thrpt   15  1021.808 ± 11.413  ops/ms
> 
> 
> M1 Mac - Perf (after):
> 
> 
> Benchmark                                   Mode  Cnt     Score    Error   Units
> MessageFormatterBench.testSubformatChoice  thrpt   15  1671.033 ± 55.012  ops/ms
> MessageFormatterBench.testSubformatNumber  thrpt   15  3275.727 ± 47.370  ops/ms

Justin Lu has updated the pull request incrementally with one additional commit since the last revision:

  Reflect suggestions from Naoto & Chen

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/28806/files
  - new: https://git.openjdk.org/jdk/pull/28806/files/8eea336f..e56ffa12

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

  Stats: 8 lines in 1 file changed: 2 ins; 1 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/28806.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28806/head:pull/28806

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


More information about the core-libs-dev mailing list