RFR (XS): 8148044: Remove Enum[0] constants from EnumSet and EnumMap
Claes Redestad
claes.redestad at oracle.com
Fri Jan 22 12:19:18 UTC 2016
On 2016-01-22 12:57, Aleksey Shipilev wrote:
> On 01/22/2016 02:34 PM, Claes Redestad wrote:
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8148044
>> Webrev: http://cr.openjdk.java.net/~redestad/8148044/webrev.01/
> -1, sorry.
>
> I would actually suggest keeping the ZERO_ARRAY in Enum*, because enums
> often have small cardinality, and there dodging an allocation matters.
> I'd also make sure we have all ZERO_ARRAY declarations like that as
> "static final".
Sure, I realized we can have the cake and eat it by moving the ZERO_ARRAY*
into the SerializationProxy class: this way we get the miniscule benefit
of having
a cached empty array while deferring the miniscule cost of the
Enum[].class load
until we actually serialize an EnumSet (if ever).
http://cr.openjdk.java.net/~redestad/8148044/webrev.02/
Thanks!
/Claes
More information about the core-libs-dev
mailing list