Looks good.

One small suggestion [1]

Best regards,
Vladimir Ivanov

[1] diff --git a/src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java b/src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java
--- a/src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java
+++ b/src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java
@@ -456,6 +456,7 @@
         static final String MH       = "java/lang/invoke/MethodHandle";
         static final String MH_SIG   = "L"+MH+";";
static final String BMH = "java/lang/invoke/BoundMethodHandle"; + static final String BMH_NAME = "java.lang.invoke.BoundMethodHandle";
         static final String BMH_SIG  = "L"+BMH+";";
static final String SPECIES_DATA = "java/lang/invoke/BoundMethodHandle$SpeciesData";
         static final String SPECIES_DATA_SIG = "L"+SPECIES_DATA+";";
@@ -463,7 +464,7 @@

         static final String SPECIES_PREFIX_NAME = "Species_";
static final String SPECIES_PREFIX_PATH = BMH + "$" + SPECIES_PREFIX_NAME; - static final String SPECIES_CLASS_PREFIX = SPECIES_PREFIX_PATH.replace('/', '.'); + static final String SPECIES_CLASS_PREFIX = BMH_NAME + "$" + SPECIES_PREFIX_NAME;

static final String BMHSPECIES_DATA_EWI_SIG = "(B)" + SPECIES_DATA_SIG; static final String BMHSPECIES_DATA_GFC_SIG = "(" + JLS_SIG + JLC_SIG + ")" + SPECIES_DATA_SIG;


On 4/10/17 5:09 PM, Claes Redestad wrote:
Hi,

profiling initializers in java.lang.invoke shows we're still doing
various things during
class initialization which could be done lazily or not at all. The
proposed patch
reduce bytecode executed, memory churn and retained heap footprint when
initializing java.lang.invoke:

Webrev: http://cr.openjdk.java.net/~redestad/8178384/jdk.01/
Bug: https://bugs.openjdk.java.net/browse/JDK-8178384

Testing: java.lang.invoke jtreg tests, sanity performance testing

Thanks!

/Claes

Reply via email to