<i18n dev> RFR: 8288979: Improve CLDRConverter run time [v3]

Daniel Jeliński djelinski at openjdk.org
Thu Jun 23 09:04:41 UTC 2022


On Thu, 23 Jun 2022 08:56:08 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

>> BTW, this can utilize the new `HashMap.newHashMap()`, although I don't think resizing would be occurring in this case.
>
>> once this fix makes it to the repository, the build will be reproducible
> 
> Yes, we always produce the same source code. Given the same order of modifications, a hashmap will produce the same iteration order.
> 
>> LinkedHashMap could be used to retain the iteration order.
> 
> Just added. The input maps were always sorted in some order (they were either LinkedHashMaps or TreeMaps), and now we preserve that order.
> This means a lot of changes in the generated output files now, but hopefully in the future the changes will be much easier to review.
> 
> TIL: `put` / `putIfAbsent` on an existing entry does not change the iteration order of a `LinkedHashMap` unless `accessOrder` is true.

> BTW, this can utilize the new `HashMap.newHashMap()`, although I don't think resizing would be occurring in this case.

It may occur if there are very few duplicates. Still, the performance impact of proper sizing is minimal here.

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

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


More information about the i18n-dev mailing list