RFR: 8238684: Override getOrDefault in immutable Map implementations
Remi Forax
forax at univ-mlv.fr
Fri Feb 7 14:21:37 UTC 2020
Hi Claes,
looks good,
it can be written in a less Doug Lea-ish way like this
V v = get(key);
return (v != null)? v: default;
I believe it using the same number of bytecodes :)
with a ALOAD instead of a DUP
Rémi
----- Mail original -----
> De: "Claes Redestad" <claes.redestad at oracle.com>
> À: "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Vendredi 7 Février 2020 13:17:40
> Objet: RFR: 8238684: Override getOrDefault in immutable Map implementations
> Hi,
>
> in our immutable map implementations, it's unnecessary for getOrDefault
> to check containsKey(key) in case get(key) returns null. This follows
> since null values are disallowed.
>
> Overriding the method with an implementation is a reasonable
> optimization, for example a 50% improvement on the added
> microbenchmark. I found this opportunity when looking at startup
> profiles, so yes, there's a tiny startup improvement, too. :-)
>
> Webrev: http://cr.openjdk.java.net/~redestad/8238684/open.00/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8238684
>
> Testing: tier1+2 (ongoing)
>
> Thanks!
>
> /Claes
More information about the core-libs-dev
mailing list