RFR: 8141678: sun.invoke.util.Wrapper eagerly initializes all integral type caches

Claes Redestad claes.redestad at oracle.com
Sun Nov 8 13:43:38 UTC 2015


indy eagerly creates and initializes all integral type caches 
(Byte$ByteCache, Short$ShortCache) which has a small, measurable
impact to jake startup and footprint. Exposing ZERO constants from Byte, 
Character, etc which are guaranteed to be identical to what's
returned from each respective valueOf(0) enables j.l.i. to initialize 
without eagerly creating these caches:

webrev: http://cr.openjdk.java.net/~redestad/8141678/webrev.01
bug: https://bugs.openjdk.java.net/browse/JDK-8141678

Making these constants public would allow us to not fetch them via 
reflection for a tiny, incremental startup improvement, but I don't
think the constants carry their own weight to motivate them becoming 
part of public API.

Testing: verified startup/footprint improvement, various jtreg tests


More information about the core-libs-dev mailing list