RFR: 8302818: Optimize wrapper sets and immutable sets of Enums [v5]

Claes Redestad redestad at openjdk.org
Tue Mar 21 23:44:44 UTC 2023


On Tue, 21 Feb 2023 03:39:46 GMT, Tingjun Yuan <duke at openjdk.org> wrote:

>> Currently, the two subclasses of `java.util.EnumSet` optimize bulk operations when the argument is also a `EnumSet`, but there is no such optimization for wrapper sets (returned by `Collections.unmodifiableSet`, `Collections.synchronizedSet`, etc.) and immutable sets (returned by `Set.of` methods) of `Enum`s.
>> 
>> This PR introduces optimization classes for these situations.  No public APIs are changed.
>
> Tingjun Yuan has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Set.copyOf: need defensive copy

If this level of complexity is indeed needed to get whatever improvement you're after then I don't see how this can be worth its weight. Microbenchmarking might help support your case here, but assessing the potential performance costs from gradually increasing the number of classes floating around at various call sites in arbitrary applications is hard. Thus it is something we need to be very careful not to do without solid evidence.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/12498#issuecomment-1478731354


More information about the core-libs-dev mailing list