Review request for JDK-8015668 : overload resolution: performance regression in JDK 7
david.holmes at oracle.com
Tue Jun 18 17:59:10 PDT 2013
On 18/06/2013 8:20 PM, Vicente-Arturo Romero-Zaldivar wrote:
> 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 com.sun.tools.javac.util.List 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
> Also a new field has been added to MethodType in
> com.sun.tools.javac.code.Type this field stores the number of arguments
> so equal comparison between methods can now be done faster for evident
> The webrev is here:
> The bug report is here:
More information about the compiler-dev