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.redes...@oracle.com> > À: "core-libs-dev" <core-libs-dev@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