class org.openjdk.jmh.profile.GCProfiler$VMSupport$1 implements javax.management.NotificationListener
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.openjdk.jmh.profile.GCProfiler$VMSupport$1
super_class: java.lang.Object
{
private final java.lang.reflect.Field val$notifNameField;
descriptor: Ljava/lang/reflect/Field;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.lang.reflect.Method val$infoMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.lang.reflect.Method val$getGcInfo;
descriptor: Ljava/lang/reflect/Method;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.lang.reflect.Method val$getMemoryUsageBeforeGc;
descriptor: Ljava/lang/reflect/Method;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.lang.reflect.Method val$getMemoryUsageAfterGc;
descriptor: Ljava/lang/reflect/Method;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(java.lang.reflect.Field, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Field;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=6
start local 0 0: aload 0
aload 1
putfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$notifNameField:Ljava/lang/reflect/Field;
aload 0
aload 2
putfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$infoMethod:Ljava/lang/reflect/Method;
aload 0
aload 3
putfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$getGcInfo:Ljava/lang/reflect/Method;
aload 0
aload 4
putfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$getMemoryUsageBeforeGc:Ljava/lang/reflect/Method;
aload 0
aload 5
putfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$getMemoryUsageAfterGc:Ljava/lang/reflect/Method;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/GCProfiler$VMSupport$1;
MethodParameters:
Name Flags
val$notifNameField final
val$infoMethod final
val$getGcInfo final
val$getMemoryUsageBeforeGc final
val$getMemoryUsageAfterGc final
public void handleNotification(javax.management.Notification, java.lang.Object);
descriptor: (Ljavax/management/Notification;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual javax.management.Notification.getType:()Ljava/lang/String;
aload 0
getfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$notifNameField:Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
1: aload 0
getfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$infoMethod:Ljava/lang/reflect/Method;
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual javax.management.Notification.getUserData:()Ljava/lang/Object;
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 0
getfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$getGcInfo:Ljava/lang/reflect/Method;
aload 3
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 3: aload 0
getfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$getMemoryUsageBeforeGc:Ljava/lang/reflect/Method;
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 5
start local 5 4: aload 0
getfield org.openjdk.jmh.profile.GCProfiler$VMSupport$1.val$getMemoryUsageAfterGc:Ljava/lang/reflect/Method;
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 6
start local 6 5: aload 6
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 13
StackMap locals: org.openjdk.jmh.profile.GCProfiler$VMSupport$1 javax.management.Notification java.lang.Object java.lang.Object java.lang.Object java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
6: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 7: aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 8: aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.management.MemoryUsage
astore 10
start local 10 9: aload 5
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.management.MemoryUsage
astore 11
start local 11 10: aload 11
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
aload 10
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
lsub
lstore 12
start local 12 11: lload 12
lconst_0
lcmp
ifle 13
12: getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.churn:Lorg/openjdk/jmh/util/Multiset;
aload 9
lload 12
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
end local 12 end local 11 end local 10 end local 9 end local 7 13: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 6 end local 5 end local 4 end local 3 14: goto 16
StackMap locals: org.openjdk.jmh.profile.GCProfiler$VMSupport$1 javax.management.Notification java.lang.Object
StackMap stack: java.lang.ReflectiveOperationException
15: pop
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/openjdk/jmh/profile/GCProfiler$VMSupport$1;
0 17 1 n Ljavax/management/Notification;
0 17 2 o Ljava/lang/Object;
2 14 3 info Ljava/lang/Object;
3 14 4 gcInfo Ljava/lang/Object;
4 14 5 mapBefore Ljava/util/Map<Ljava/lang/String;Ljava/lang/management/MemoryUsage;>;
5 14 6 mapAfter Ljava/util/Map<Ljava/lang/String;Ljava/lang/management/MemoryUsage;>;
7 13 7 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/management/MemoryUsage;>;
8 13 9 name Ljava/lang/String;
9 13 10 after Ljava/lang/management/MemoryUsage;
10 13 11 before Ljava/lang/management/MemoryUsage;
11 13 12 c J
Exception table:
from to target type
0 14 15 Class java.lang.IllegalAccessException
0 14 15 Class java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
n
o
}
SourceFile: "GCProfiler.java"
EnclosingMethod: org.openjdk.jmh.profile.GCProfiler$VMSupport.newListener:()Ljavax/management/NotificationListener;
NestHost: org.openjdk.jmh.profile.GCProfiler
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
VMSupport = org.openjdk.jmh.profile.GCProfiler$VMSupport of org.openjdk.jmh.profile.GCProfiler
org.openjdk.jmh.profile.GCProfiler$VMSupport$1