RFR 8200696 : Optimal initial capacity of java.lang.Class.enumConstantDirectory
David Holmes
david.holmes at oracle.com
Tue Apr 3 23:49:20 UTC 2018
Hi Ivan,
On 4/04/2018 9:22 AM, Ivan Gerasimov wrote:
> Hello!
>
> Yet another occurrence of not-optimally pre-sized HashMap.
>
> When java.lang.Class.enumConstantDirectory is created, the initial
> capacity is set to be (2 * universe.length), which is more than
> necessary in some cases.
>
> Choosing the capacity optimally will allow us to save a few bytes with
> some enum classes.
How are you defining optimal? The bug report only gives one example
where the current calculation produces a too large value. If the HashMap
itself rounds up the initial capacity to a power of 2, how much extra
space do we need compared to universe.length? Do we just need to pass
(universe.length+1) to get the smallest power of 2 greater than
universe.length?
Thanks,
David
> Would you please help review this trivial fix?
>
> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8200696
> WEBREV: http://cr.openjdk.java.net/~igerasim/8200696/00/webrev/
>
More information about the core-libs-dev
mailing list