Review request for JDK-8015668 : overload resolution: performance regression in JDK 7

David Holmes david.holmes at
Tue Jun 18 17:59:10 PDT 2013

Hi Vicente,

On 18/06/2013 8:20 PM, Vicente-Arturo Romero-Zaldivar wrote:
> Hello,
> Please review this patch. It solves a performance regression in javac
> for 7u-dev repo.
> The regression has been detected for a class that declares methods with
> a lot of parameters (1..254).
> The proposed solution modifies a data structure used to store wrong
> method candidates for a given argument / type list. The mentioned data
> structure was a and now is a java.util.Set.

This seems a little odd semantically looking at some of the code. In 
particular getName previously used the first/head element in the list:

Symbol sym = candidates.head.sym;

where now you use an arbitrary name from the set:

Symbol sym = candidates.iterator().next().sym;

Is there a reason not to use LinkedList or ArrayList for this so you can 
use getFirst()?


> Also a new field has been added to MethodType in
> this field stores the number of arguments
> so equal comparison between methods can now be done faster for evident
> cases.
> The webrev is here:
> The bug report is here:
> Thanks,
> Vicente

More information about the compiler-dev mailing list