<i18n dev> RFR: 8261418: Reduce decoder creation overheads for sun.nio.cs.ext Charsets [v3]

Claes Redestad redestad at openjdk.java.net
Wed Feb 10 23:35:54 UTC 2021


> This refactor some `sun.nio.cs.ext` charsets, such as ISO-2022-CN-GB, ISO-2022-CN-CNS, ISO-2022-KR and a few others to use static rather than per-instance auxiliary decoders. Doing so reduce overheads of calling `charset.newDecoder()`. This reduce or eliminate regressions on `new String(byte[], String)` operations due the removal of thread-local decoder caching in [JDK-8259842](https://bugs.openjdk.java.net/browse/JDK-8259842)
> 
> Most ISO-2022 Charsets define a specialized decoder already. The `ISO2022.Decoder` class was only used by `ISO2022_KR`, so folding it into that implementation and simplifying the code brings a rather significant speed-up, both to decoder creation and on actual decoding.
> 
> Testing: tier1-3, manual runs of sun.nio.cs tests

Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:

  Add comment about removing the generic ISO2022.Decoder

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2480/files
  - new: https://git.openjdk.java.net/jdk/pull/2480/files/aa24f031..fa593915

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2480&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2480&range=01-02

  Stats: 7 lines in 1 file changed: 7 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2480.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2480/head:pull/2480

PR: https://git.openjdk.java.net/jdk/pull/2480


More information about the i18n-dev mailing list