RFR: 8281631: HashMap copy constructor and putAll can over-allocate table [v21]
liach
duke at openjdk.java.net
Sun Feb 20 18:23:49 UTC 2022
On Sun, 20 Feb 2022 18:08:37 GMT, XenoAmess <duke at openjdk.java.net> wrote:
>> 8281631: HashMap copy constructor and putAll can over-allocate table
>
> XenoAmess has updated the pull request incrementally with three additional commits since the last revision:
>
> - refine test
> - 1. optimize IdentityHashMap that when calling ::new(Map), do not call map.size() twice but once.
> 2. delete the this((int) ((1 + m.size()) * 1.1)); as it makes the table over-allocate when size = 19.
> - refine test
src/java.base/share/classes/java/util/IdentityHashMap.java line 281:
> 279: * @throws NullPointerException if the specified map is null
> 280: */
> 281: private IdentityHashMap(Map<? extends K, ? extends V> map, int expectedSize) {
Why are you writing a new constructor when you can just change the old call to `this(m.size());`?
-------------
PR: https://git.openjdk.java.net/jdk/pull/7431
More information about the core-libs-dev
mailing list