RFR 8200696 : Optimal initial capacity of java.lang.Class.enumConstantDirectory

Ivan Gerasimov ivan.gerasimov at oracle.com
Thu Apr 5 06:49:52 UTC 2018


Hi Martin!

Ah bummer!  Missing @modules java.base/java.util:open in the test.

Sorry about that.

Let me fix it with the fix for a similar issue JDK-8200788 that I've 
just filed.

With kind regards,
Ivan

On 4/4/18 9:24 PM, Martin Buchholz wrote:
> Hi Ivan,
> I'm seeing
>
> [2018-04-04 20:56:11,999] Agent[1]: stderr: WARNING: An illegal 
> reflective access operation has occurred
> [2018-04-04 20:56:11,999] Agent[1]: stderr: WARNING: Illegal 
> reflective access by jdk.testlibrary.OptimalCapacity 
> (file:/tmp/jtr-BHhgGo/classes/lib/testlibrary/) to field 
> java.util.HashMap.table
> [2018-04-04 20:56:11,999] Agent[1]: stderr: WARNING: Please consider 
> reporting this to the maintainers of jdk.testlibrary.OptimalCapacity
>
> which seems likely a result of this change?
>
> On Wed, Apr 4, 2018 at 4:54 PM, Ivan Gerasimov 
> <ivan.gerasimov at oracle.com <mailto:ivan.gerasimov at oracle.com>> wrote:
>
>     Thanks David and Claes!
>
>     I changed the expression to (int)(universe.length / 0.75f) + 1
>     before pushing the fix and updated the Jira bug with more details.
>
>     With kind regards,
>
>     Ivan
>
>
>
>     On 4/3/18 11:56 PM, Claes Redestad wrote:
>
>         Hi Ivan,
>
>         looks good.
>
>         Nit: maybe (int)(universe.length / 0.75f) + 1 to keep fp
>         arithmetic to a minimum.
>
>         /Claes
>
>         On 2018-04-04 01:22, 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.
>
>             Would you please help review this trivial fix?
>
>             BUGURL: https://bugs.openjdk.java.net/browse/JDK-8200696
>             <https://bugs.openjdk.java.net/browse/JDK-8200696>
>             WEBREV:
>             http://cr.openjdk.java.net/~igerasim/8200696/00/webrev/
>             <http://cr.openjdk.java.net/%7Eigerasim/8200696/00/webrev/>
>
>
>
>
>     -- 
>     With kind regards,
>     Ivan Gerasimov
>
>

-- 
With kind regards,
Ivan Gerasimov



More information about the core-libs-dev mailing list