-
Enhancement
-
Resolution: Fixed
-
P4
-
14
-
b24
Significant overhead in DefaultMethods::generate_default_methods stems from book-keeping overheads, especially allocating very short-lived objects into the HierarchyVisitor used to determine what methods we need to generate.
By refactoring this code to reuse various data structures and data contained therein during method generation, I can see an approximate 60% reduction in instructions needed to generate default methods in a variety of applications (along with 90% reduced allocation pressure on the resource arenas), while ensuring that the exact same default methods and overpasses are being generated on a number of relatively complex applications.
Pre-RFR PoC patch: http://cr.openjdk.java.net/~redestad/scratch/default_reuse.00/
By refactoring this code to reuse various data structures and data contained therein during method generation, I can see an approximate 60% reduction in instructions needed to generate default methods in a variety of applications (along with 90% reduced allocation pressure on the resource arenas), while ensuring that the exact same default methods and overpasses are being generated on a number of relatively complex applications.
Pre-RFR PoC patch: http://cr.openjdk.java.net/~redestad/scratch/default_reuse.00/