EVALUATION
Problem seems to be caused by the fact that MethodSymbol.overrides is called too many times.
By refactoring the code we obtained the following numbers (thanks Jan Lahoda):
As for a benchmark, I generated a simple abstract class with many (1000) overloaded abstract methods, and created two testcases (t1.zip, t2.zip):
-t1, using a JDK7 javac, takes about 4 minutes to compile. Using the patched version (on a dev build of JDK8), it takes less than 10 seconds.
-t2 (which includes a class that implements the abstract methods), I did not wait for build on JDK7 - it took more than 30 minutes, with the patch it takes less than 30 seconds.
|