RFR: 8163878: Remove unnecessary bridge methods, allocations in java.lang.invoke
Claes Redestad
claes.redestad at oracle.com
Thu Aug 11 17:55:38 UTC 2016
Hi,
while further untangling the bootstrap of java.lang.invoke I found a
number of trivial/minor/small contrivances, including:
- calling of private methods and constants in parent classes generates
and heavily exercise synthetic bridge methods; carefully making more of
these package-private cleans the air
- use of MethodType.parameterList() and .subList() pull in extra classes
in places I missed during JDK-8163370 analysis; preferring
parameterType/parameterCount/Arrays.copyOf also reduces allocations
- removed some pointless bookkeeping and duplicate checks of constant
placeholders in InvokerBytecodeGenerator
- since I was already changing around in StringConcatFactory I reworked
some changes I made during JDK-8163370 that proved controversial
Webrev: http://cr.openjdk.java.net/~redestad/8163878/webrev.01/
Bug: https://bugs.openjdk.java.net/browse/JDK-8163878
All in all -45K executed bytecodes and 9 fewer loaded classes in my
favored startup test.
Thanks!
/Claes
More information about the core-libs-dev
mailing list