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 build-dev
mailing list