RFR: 8152641: Plugin to generate BMH$Species classes ahead-of-time
Claes Redestad
claes.redestad at oracle.com
Thu Mar 24 13:42:03 UTC 2016
Hi,
please review this patch which add an enabled-by-default plugin to
generate a
configurable list of BoundMethodHandle$Species_*-classes using jlink.
Bug: https://bugs.openjdk.java.net/browse/JDK-8152641
Webrev: http://cr.openjdk.java.net/~redestad/8152641/webrev.01/
This plugin adds the --generate-bmh flag to jlink, which takes a
comma-separated list of shortened species type strings.
As an example: --generate-bmh LL,L3,L4 will generate
BoundMethodHandle$Species_LL, ...$Species_L3 and ...$Species_L4 and add
them to the java.base module.
The Species class lookup in BoundMethodHandle will first check if there
is a
generated class, otherwise generate it as previously. Adding an exceptional
path might seem problematic, but as the code generation is magnitudes more
expensive than the exception it doesn't seem fruitful to go to lengths
to avoid
the CNFE.
More notes along with some results can be found here:
http://cr.openjdk.java.net/~redestad/scratch/bmh_species_gen.txt
Thanks!
/Claes
More information about the jigsaw-dev
mailing list