RFR: 8231640: (prop) Canonical property storage

Jaikiran Pai jai.forums2013 at gmail.com
Sun Sep 5 12:36:31 UTC 2021


Hello Andrey,

On 05/09/21 12:02 am, Andrey Turbanov wrote:
>
> src/java.base/share/classes/java/util/Properties.java line 924:
>
>> 922:         writeDateComment(bw);
>> 923:         synchronized (this) {
>> 924:             for (Map.Entry<Object, Object> e : new TreeMap<>(map).entrySet()) {
> Is this sorting intentionally added? It's not clear from issue description or PR description that order of properties should be changed too.
> Anyway I think copying to array and then sorting should be faster, that creating TreeMap

Yes, the ordering of the properties is intentional as noted in the 
description of this PR as well as the linked mail discussion thread.

As for the usage of TreeMap, I had looked around the JDK code to see if 
there are more performant ways to order that existing Map, but I 
couldn't find any. Do you mean that converting the keySet() of an 
existing Map into an array and then sorting that array and then using 
that sorted array to iterate and using these keys to do an additional 
lookup for value against the original Map would be more efficient in 
this case? I can experiment with it in a simple JMH benchmark with some 
decent/regular sized Map and see how it performs.

-Jaikiran



More information about the core-libs-dev mailing list