RFR 8009736: Comparator API cleanup

John Rose john.r.rose at oracle.com
Fri Jun 14 14:44:36 PDT 2013


On Jun 14, 2013, at 3:07 AM, Paul Sandoz <paul.sandoz at oracle.com> wrote:

>            this.real = (Comparator<T>) Objects.requireNonNull(real);

Regarding this idiom, I added the following comment to JDK-6919064:

> New JDK 8 code is making frequent use of static methods like Objects.requireNonNull and Objects.equal. If these were open-coded (that is, inlined by hand), the branches and virtual calls (to Object.equals) would be profiled per caller. As global functions, their profiles are polluted, which may cause performance problems. 

> 
> A fix to this bug should demonstrate that Objects.requireNonNull and Objects.equal are as fast as their open-coded equivalents, even in the presence of profile pollution. To pollute the profile of these methods, simply pre-warm the benchmark by a small loop passing a variety of nulls and non-null references to various classes to the arguments of these methods.

http://bugs.sun.com/view_bug.do?bug_id=6919064

— John


More information about the lambda-dev mailing list