Could I have a second review, please? Thanks a lot, Thomas
On Tue, Jun 12, 2018 at 7:36 AM, Thomas Stüfe <thomas.stu...@gmail.com> wrote: > Ping. > > jdk-submit tests came back clean. > > Thanks, Thomas > > On Wed, Jun 6, 2018 at 6:05 PM, Thomas Stüfe <thomas.stu...@gmail.com> wrote: >> Dear all, >> >> may I please have feedback and if possible reviews for this small addition: >> >> CR: https://bugs.openjdk.java.net/browse/JDK-8203343 >> Webrev: >> http://cr.openjdk.java.net/~stuefe/webrevs/8203343-VM.metaspace-show-reflection-invocation-targets/webrev.00/webrev/ >> >> (Note: this patch goes atop of >> https://bugs.openjdk.java.net/browse/JDK-8203682, which is currently >> up for RFR). >> >> --- >> >> When analyzing situations involving a lot of reflection, one often >> stares at walls of "GeneratedXXXAccessorXXX" classes. These names are >> generated and not at all helpful in analyzing the problem (e.g. which >> component in a server node does this much reflection and hence uses so >> much metaspace). >> >> This patch adds the ability to print out invocation targets >> additionally to class names if the class is a generated accessor - for >> now this ability has been added to VM.metaspace, VM.classloaders and >> VM.class_hierarchy. >> >> Example output from "VM.class_hierarchy": >> >> <snip> >> |--jdk.internal.reflect.MagicAccessorImpl/null >> <snip> >> | |--jdk.internal.reflect.ConstructorAccessorImpl/null >> | | >> |--jdk.internal.reflect.GeneratedConstructorAccessor18/0x00007f9ee8350c10 >> (invokes: >> org/springframework/boot/context/properties/ConfigurationPropertiesBindingPostProcessorRegistrar::<init> >> ()V) >> | | >> |--jdk.internal.reflect.GeneratedConstructorAccessor17/0x00007f9ee8349c00 >> (invokes: >> org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar::<init> >> ()V) >> <snip> >> | |--jdk.internal.reflect.MethodAccessorImpl/null >> | | |--jdk.internal.reflect.GeneratedMethodAccessor23/0x00007f9ec8329b60 >> (invokes: org/apache/tomcat/util/modeler/AttributeInfo::setIs (Z)V) >> | | |--jdk.internal.reflect.GeneratedMethodAccessor22/0x00007f9ee831bc70 >> (invokes: >> org/springframework/boot/autoconfigure/SpringBootApplication::exclude >> ()[Ljava/lang/Class;) >> <snip> >> >> See here more examples: >> >> "VM.class_hierarchy" >> http://cr.openjdk.java.net/~stuefe/webrevs/8203343-VM.metaspace-show-reflection-invocation-targets/example-VM.class_hierarchy.txt >> >> "VM.classloaders show-classes" >> http://cr.openjdk.java.net/~stuefe/webrevs/8203343-VM.metaspace-show-reflection-invocation-targets/example-VM.classloaders.txt >> >> >> ---- >> >> Note: I am not sure if this is a fit for hotspot-runtime or >> serviceability. Sorry for crossposting. >> >> Thank you, >> >> Thomas