<i18n dev> RFR: 8261254: Initialize charset mapping data lazily

Claes Redestad redestad at openjdk.java.net
Mon Feb 8 12:18:45 UTC 2021


On Mon, 8 Feb 2021 11:42:23 GMT, Сергей Цыпанов <github.com+10835776+stsypanov at openjdk.org> wrote:

>> This patch refactor JDK internal charsets to initialize charset mapping data lazily when needed via holder classes. This means both a startup improvement in some cases, and possible throughput improvements for all DoubleByte-based Charsets.
>> 
>> Testing: tier1-3
>
> src/jdk.charsets/share/classes/sun/nio/cs/ext/AbstractCharsetProvider.java line 75:
> 
>> 73: 
>> 74:     protected AbstractCharsetProvider(String pkgPrefixName) {
>> 75:         packagePrefix = pkgPrefixName.concat(".");
> 
> Hm, I wonder why not just `pkgPrefixName + '.'` here and below? Is it something about early init of `StringConcatFactory`?

Yes, I wanted to measure the overhead of `Charset` class initialization done by `Charset.availableCharsets()` and the `StringConcatFactory` bootstraps was a reasonable chunk of the cost so I moved them out of the picture. I didn't mind what I ended up with, but if you prefer I can move back to `pkgPrefixName + '.'` here.

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

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


More information about the i18n-dev mailing list