public class org.apache.cassandra.service.GCInspector implements javax.management.NotificationListener, org.apache.cassandra.service.GCInspectorMXBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.service.GCInspector
super_class: java.lang.Object
{
public static final java.lang.String MBEAN_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "org.apache.cassandra.service:type=GCInspector"
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final long MIN_LOG_DURATION;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final long GC_WARN_THRESHOLD_IN_MS;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final long STAT_THRESHOLD;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.reflect.Field BITS_TOTAL_CAPACITY;
descriptor: Ljava/lang/reflect/Field;
flags: (0x0018) ACC_STATIC, ACC_FINAL
final java.util.concurrent.atomic.AtomicReference<org.apache.cassandra.service.GCInspector$State> state;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/apache/cassandra/service/GCInspector$State;>;
final java.util.Map<java.lang.String, org.apache.cassandra.service.GCInspector$GCState> gcStates;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/cassandra/service/GCInspector$GCState;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=0
0: ldc Lorg/apache/cassandra/service/GCInspector;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getGCLogThreshold:()J
putstatic org.apache.cassandra.service.GCInspector.MIN_LOG_DURATION:J
2: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getGCWarnThreshold:()J
putstatic org.apache.cassandra.service.GCInspector.GC_WARN_THRESHOLD_IN_MS:J
3: getstatic org.apache.cassandra.service.GCInspector.GC_WARN_THRESHOLD_IN_MS:J
lconst_0
lcmp
ifeq 4
getstatic org.apache.cassandra.service.GCInspector.GC_WARN_THRESHOLD_IN_MS:J
goto 5
StackMap locals:
StackMap stack:
4: getstatic org.apache.cassandra.service.GCInspector.MIN_LOG_DURATION:J
StackMap locals:
StackMap stack: long
5: putstatic org.apache.cassandra.service.GCInspector.STAT_THRESHOLD:J
6: aconst_null
astore 0
start local 0 7: ldc "java.nio.Bits"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 1
start local 1 8: aload 1
ldc "totalCapacity"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 2
start local 2 9: aload 2
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
10: aload 2
astore 0
end local 2 end local 1 11: goto 14
12: StackMap locals: java.lang.reflect.Field
StackMap stack: java.lang.Throwable
astore 1
start local 1 13: getstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
ldc "Error accessing field of java.nio.Bits"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 14: StackMap locals:
StackMap stack:
aload 0
putstatic org.apache.cassandra.service.GCInspector.BITS_TOTAL_CAPACITY:Ljava/lang/reflect/Field;
end local 0 15: return
LocalVariableTable:
Start End Slot Name Signature
7 15 0 temp Ljava/lang/reflect/Field;
8 11 1 bitsClass Ljava/lang/Class<*>;
9 11 2 f Ljava/lang/reflect/Field;
13 14 1 t Ljava/lang/Throwable;
Exception table:
from to target type
7 11 12 Class java.lang.Throwable
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
new org.apache.cassandra.service.GCInspector$State
dup
invokespecial org.apache.cassandra.service.GCInspector$State.<init>:()V
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.cassandra.service.GCInspector.state:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.apache.cassandra.service.GCInspector.gcStates:Ljava/util/Map;
3: invokestatic java.lang.management.ManagementFactory.getPlatformMBeanServer:()Ljavax/management/MBeanServer;
astore 1
start local 1 4: new javax.management.ObjectName
dup
ldc "java.lang:type=GarbageCollector,*"
invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
astore 2
start local 2 5: aload 1
aload 2
aconst_null
invokeinterface javax.management.MBeanServer.queryNames:(Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: org.apache.cassandra.service.GCInspector javax.management.MBeanServer javax.management.ObjectName top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.management.ObjectName
astore 3
start local 3 7: aload 1
aload 3
invokevirtual javax.management.ObjectName.getCanonicalName:()Ljava/lang/String;
ldc Ljava/lang/management/GarbageCollectorMXBean;
invokestatic java.lang.management.ManagementFactory.newPlatformMXBeanProxy:(Ljavax/management/MBeanServerConnection;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.management.GarbageCollectorMXBean
astore 5
start local 5 8: aload 0
getfield org.apache.cassandra.service.GCInspector.gcStates:Ljava/util/Map;
aload 5
invokeinterface java.lang.management.GarbageCollectorMXBean.getName:()Ljava/lang/String;
new org.apache.cassandra.service.GCInspector$GCState
dup
aload 5
aload 5
invokestatic org.apache.cassandra.service.GCInspector.assumeGCIsPartiallyConcurrent:(Ljava/lang/management/GarbageCollectorMXBean;)Z
aload 5
invokestatic org.apache.cassandra.service.GCInspector.assumeGCIsOldGen:(Ljava/lang/management/GarbageCollectorMXBean;)Z
invokespecial org.apache.cassandra.service.GCInspector$GCState.<init>:(Ljava/lang/management/GarbageCollectorMXBean;ZZ)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: aload 1
aload 0
new javax.management.ObjectName
dup
ldc "org.apache.cassandra.service:type=GCInspector"
invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
invokeinterface javax.management.MBeanServer.registerMBean:(Ljava/lang/Object;Ljavax/management/ObjectName;)Ljavax/management/ObjectInstance;
pop
end local 2 11: goto 14
12: StackMap locals: org.apache.cassandra.service.GCInspector javax.management.MBeanServer
StackMap stack: java.lang.Exception
astore 2
start local 2 13: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/cassandra/service/GCInspector;
4 15 1 mbs Ljavax/management/MBeanServer;
5 11 2 gcName Ljavax/management/ObjectName;
7 9 3 name Ljavax/management/ObjectName;
8 9 5 gc Ljava/lang/management/GarbageCollectorMXBean;
13 14 2 e Ljava/lang/Exception;
Exception table:
from to target type
4 11 12 Class java.lang.Exception
public static void register();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=0
0: new org.apache.cassandra.service.GCInspector
dup
invokespecial org.apache.cassandra.service.GCInspector.<init>:()V
astore 0
start local 0 1: invokestatic java.lang.management.ManagementFactory.getPlatformMBeanServer:()Ljavax/management/MBeanServer;
astore 1
start local 1 2: new javax.management.ObjectName
dup
ldc "java.lang:type=GarbageCollector,*"
invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
astore 2
start local 2 3: aload 1
aload 2
aconst_null
invokeinterface javax.management.MBeanServer.queryNames:(Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: org.apache.cassandra.service.GCInspector javax.management.MBeanServer javax.management.ObjectName top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.management.ObjectName
astore 3
start local 3 5: aload 1
aload 3
aload 0
aconst_null
aconst_null
invokeinterface javax.management.MBeanServer.addNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 inspector Lorg/apache/cassandra/service/GCInspector;
2 8 1 server Ljavax/management/MBeanServer;
3 8 2 gcName Ljavax/management/ObjectName;
5 6 3 name Ljavax/management/ObjectName;
Exceptions:
throws java.lang.Exception
private static boolean assumeGCIsPartiallyConcurrent(java.lang.management.GarbageCollectorMXBean);
descriptor: (Ljava/lang/management/GarbageCollectorMXBean;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.management.GarbageCollectorMXBean.getName:()Ljava/lang/String;
dup
astore 1
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 8
-1911579297: 1
-1022169080: 2
-842066396: 3
2106261: 4
320101609: 5
369537270: 6
1093844743: 7
1973769762: 8
default: 11
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 1
ldc "ParNew"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
2: aload 1
ldc "ConcurrentMarkSweep"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
3: aload 1
ldc "MarkSweepCompact"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
4: aload 1
ldc "Copy"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
5: aload 1
ldc "PS Scavenge"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
6: aload 1
ldc "G1 Young Generation"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
7: aload 1
ldc "G1 Old Generation"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
8: aload 1
ldc "PS MarkSweep"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
11: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 gc Ljava/lang/management/GarbageCollectorMXBean;
MethodParameters:
Name Flags
gc
private static boolean assumeGCIsOldGen(java.lang.management.GarbageCollectorMXBean);
descriptor: (Ljava/lang/management/GarbageCollectorMXBean;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.management.GarbageCollectorMXBean.getName:()Ljava/lang/String;
dup
astore 1
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 8
-1911579297: 1
-1022169080: 2
-842066396: 3
2106261: 4
320101609: 5
369537270: 6
1093844743: 7
1973769762: 8
default: 11
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 1
ldc "ParNew"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
2: aload 1
ldc "ConcurrentMarkSweep"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
3: aload 1
ldc "MarkSweepCompact"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
4: aload 1
ldc "Copy"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
5: aload 1
ldc "PS Scavenge"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
6: aload 1
ldc "G1 Young Generation"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
7: aload 1
ldc "G1 Old Generation"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
8: aload 1
ldc "PS MarkSweep"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 gc Ljava/lang/management/GarbageCollectorMXBean;
MethodParameters:
Name Flags
gc
public void handleNotification(javax.management.Notification, java.lang.Object);
descriptor: (Ljavax/management/Notification;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=22, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual javax.management.Notification.getType:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
ldc "com.sun.management.gc.notification"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 44
2: aload 1
invokevirtual javax.management.Notification.getUserData:()Ljava/lang/Object;
checkcast javax.management.openmbean.CompositeData
astore 4
start local 4 3: aload 4
invokestatic com.sun.management.GarbageCollectionNotificationInfo.from:(Ljavax/management/openmbean/CompositeData;)Lcom/sun/management/GarbageCollectionNotificationInfo;
astore 5
start local 5 4: aload 5
invokevirtual com.sun.management.GarbageCollectionNotificationInfo.getGcName:()Ljava/lang/String;
astore 6
start local 6 5: aload 5
invokevirtual com.sun.management.GarbageCollectionNotificationInfo.getGcInfo:()Lcom/sun/management/GcInfo;
astore 7
start local 7 6: aload 7
invokevirtual com.sun.management.GcInfo.getDuration:()J
lstore 8
start local 8 7: aload 0
getfield org.apache.cassandra.service.GCInspector.gcStates:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.service.GCInspector$GCState
astore 10
start local 10 8: aload 10
getfield org.apache.cassandra.service.GCInspector$GCState.assumeGCIsPartiallyConcurrent:Z
ifeq 13
9: aload 10
getfield org.apache.cassandra.service.GCInspector$GCState.lastGcTotalDuration:J
lstore 11
start local 11 10: aload 10
getfield org.apache.cassandra.service.GCInspector$GCState.gcBean:Ljava/lang/management/GarbageCollectorMXBean;
invokeinterface java.lang.management.GarbageCollectorMXBean.getCollectionTime:()J
lstore 13
start local 13 11: aload 10
lload 13
putfield org.apache.cassandra.service.GCInspector$GCState.lastGcTotalDuration:J
12: lload 13
lload 11
lsub
lstore 8
end local 13 end local 11 13: StackMap locals: org.apache.cassandra.service.GCInspector javax.management.Notification java.lang.Object java.lang.String javax.management.openmbean.CompositeData com.sun.management.GarbageCollectionNotificationInfo java.lang.String com.sun.management.GcInfo long org.apache.cassandra.service.GCInspector$GCState
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 11
start local 11 14: aload 11
aload 5
invokevirtual com.sun.management.GarbageCollectionNotificationInfo.getGcName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " GC in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 8
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "ms. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: lconst_0
lstore 12
start local 12 16: aload 7
invokevirtual com.sun.management.GcInfo.getMemoryUsageBeforeGc:()Ljava/util/Map;
astore 14
start local 14 17: aload 7
invokevirtual com.sun.management.GcInfo.getMemoryUsageAfterGc:()Ljava/util/Map;
astore 15
start local 15 18: aload 10
aload 5
invokevirtual org.apache.cassandra.service.GCInspector$GCState.keys:(Lcom/sun/management/GarbageCollectionNotificationInfo;)[Ljava/lang/String;
dup
astore 19
arraylength
istore 18
iconst_0
istore 17
goto 30
StackMap locals: org.apache.cassandra.service.GCInspector javax.management.Notification java.lang.Object java.lang.String javax.management.openmbean.CompositeData com.sun.management.GarbageCollectionNotificationInfo java.lang.String com.sun.management.GcInfo long org.apache.cassandra.service.GCInspector$GCState java.lang.StringBuilder long java.util.Map java.util.Map top int int java.lang.String[]
StackMap stack:
19: aload 19
iload 17
aaload
astore 16
start local 16 20: aload 14
aload 16
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.management.MemoryUsage
astore 20
start local 20 21: aload 15
aload 16
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.management.MemoryUsage
astore 21
start local 21 22: aload 21
ifnull 29
aload 21
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
aload 20
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
lcmp
ifeq 29
23: aload 11
aload 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 20
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
24: aload 11
ldc " -> "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: aload 11
aload 21
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
26: aload 16
aload 10
getfield org.apache.cassandra.service.GCInspector$GCState.keys:[Ljava/lang/String;
aload 10
getfield org.apache.cassandra.service.GCInspector$GCState.keys:[Ljava/lang/String;
arraylength
iconst_1
isub
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
27: aload 11
ldc "; "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: StackMap locals: org.apache.cassandra.service.GCInspector javax.management.Notification java.lang.Object java.lang.String javax.management.openmbean.CompositeData com.sun.management.GarbageCollectionNotificationInfo java.lang.String com.sun.management.GcInfo long org.apache.cassandra.service.GCInspector$GCState java.lang.StringBuilder long java.util.Map java.util.Map java.lang.String int int java.lang.String[] java.lang.management.MemoryUsage java.lang.management.MemoryUsage
StackMap stack:
lload 12
aload 20
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
aload 21
invokevirtual java.lang.management.MemoryUsage.getUsed:()J
lsub
ladd
lstore 12
end local 21 end local 20 end local 16 29: StackMap locals: org.apache.cassandra.service.GCInspector javax.management.Notification java.lang.Object java.lang.String javax.management.openmbean.CompositeData com.sun.management.GarbageCollectionNotificationInfo java.lang.String com.sun.management.GcInfo long org.apache.cassandra.service.GCInspector$GCState java.lang.StringBuilder long java.util.Map java.util.Map top int int java.lang.String[]
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
30: iload 17
iload 18
if_icmplt 19
31: StackMap locals: org.apache.cassandra.service.GCInspector javax.management.Notification java.lang.Object java.lang.String javax.management.openmbean.CompositeData com.sun.management.GarbageCollectionNotificationInfo java.lang.String com.sun.management.GcInfo long org.apache.cassandra.service.GCInspector$GCState java.lang.StringBuilder long java.util.Map java.util.Map
StackMap stack:
aload 0
getfield org.apache.cassandra.service.GCInspector.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.apache.cassandra.service.GCInspector$State
astore 16
start local 16 32: aload 0
getfield org.apache.cassandra.service.GCInspector.state:Ljava/util/concurrent/atomic/AtomicReference;
aload 16
new org.apache.cassandra.service.GCInspector$State
dup
lload 8
l2d
lload 12
l2d
aload 16
invokespecial org.apache.cassandra.service.GCInspector$State.<init>:(DDLorg/apache/cassandra/service/GCInspector$State;)V
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 31
end local 16 33: aload 11
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 16
start local 16 34: getstatic org.apache.cassandra.service.GCInspector.GC_WARN_THRESHOLD_IN_MS:J
lconst_0
lcmp
ifeq 36
lload 8
getstatic org.apache.cassandra.service.GCInspector.GC_WARN_THRESHOLD_IN_MS:J
lcmp
ifle 36
35: getstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
aload 16
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
goto 40
36: StackMap locals: java.lang.String
StackMap stack:
lload 8
getstatic org.apache.cassandra.service.GCInspector.MIN_LOG_DURATION:J
lcmp
ifle 38
37: getstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
aload 16
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
goto 40
38: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 40
39: getstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
aload 16
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
40: StackMap locals:
StackMap stack:
lload 8
getstatic org.apache.cassandra.service.GCInspector.STAT_THRESHOLD:J
lcmp
ifle 42
41: invokestatic org.apache.cassandra.utils.StatusLogger.log:()V
42: StackMap locals:
StackMap stack:
aload 10
getfield org.apache.cassandra.service.GCInspector$GCState.assumeGCIsOldGen:Z
ifeq 44
43: invokestatic org.apache.cassandra.db.lifecycle.LifecycleTransaction.rescheduleFailedDeletions:()V
end local 16 end local 15 end local 14 end local 12 end local 11 end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 44: StackMap locals: org.apache.cassandra.service.GCInspector javax.management.Notification java.lang.Object java.lang.String
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/apache/cassandra/service/GCInspector;
0 45 1 notification Ljavax/management/Notification;
0 45 2 handback Ljava/lang/Object;
1 45 3 type Ljava/lang/String;
3 44 4 cd Ljavax/management/openmbean/CompositeData;
4 44 5 info Lcom/sun/management/GarbageCollectionNotificationInfo;
5 44 6 gcName Ljava/lang/String;
6 44 7 gcInfo Lcom/sun/management/GcInfo;
7 44 8 duration J
8 44 10 gcState Lorg/apache/cassandra/service/GCInspector$GCState;
10 13 11 previousTotal J
11 13 13 total J
14 44 11 sb Ljava/lang/StringBuilder;
16 44 12 bytes J
17 44 14 beforeMemoryUsage Ljava/util/Map<Ljava/lang/String;Ljava/lang/management/MemoryUsage;>;
18 44 15 afterMemoryUsage Ljava/util/Map<Ljava/lang/String;Ljava/lang/management/MemoryUsage;>;
20 29 16 key Ljava/lang/String;
21 29 20 before Ljava/lang/management/MemoryUsage;
22 29 21 after Ljava/lang/management/MemoryUsage;
32 33 16 prev Lorg/apache/cassandra/service/GCInspector$State;
34 44 16 st Ljava/lang/String;
MethodParameters:
Name Flags
notification final
handback final
public org.apache.cassandra.service.GCInspector$State getTotalSinceLastCheck();
descriptor: ()Lorg/apache/cassandra/service/GCInspector$State;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.GCInspector.state:Ljava/util/concurrent/atomic/AtomicReference;
new org.apache.cassandra.service.GCInspector$State
dup
invokespecial org.apache.cassandra.service.GCInspector$State.<init>:()V
invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.service.GCInspector$State
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/service/GCInspector;
public double[] getAndResetStats();
descriptor: ()[D
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.service.GCInspector.getTotalSinceLastCheck:()Lorg/apache/cassandra/service/GCInspector$State;
astore 1
start local 1 1: bipush 7
newarray 7
astore 2
start local 2 2: aload 2
iconst_0
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.lang.System.nanoTime:()J
aload 1
getfield org.apache.cassandra.service.GCInspector$State.startNanos:J
lsub
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
l2d
dastore
3: aload 2
iconst_1
aload 1
getfield org.apache.cassandra.service.GCInspector$State.maxRealTimeElapsed:D
dastore
4: aload 2
iconst_2
aload 1
getfield org.apache.cassandra.service.GCInspector$State.totalRealTimeElapsed:D
dastore
5: aload 2
iconst_3
aload 1
getfield org.apache.cassandra.service.GCInspector$State.sumSquaresRealTimeElapsed:D
dastore
6: aload 2
iconst_4
aload 1
getfield org.apache.cassandra.service.GCInspector$State.totalBytesReclaimed:D
dastore
7: aload 2
iconst_5
aload 1
getfield org.apache.cassandra.service.GCInspector$State.count:D
dastore
8: aload 2
bipush 6
invokestatic org.apache.cassandra.service.GCInspector.getAllocatedDirectMemory:()J
l2d
dastore
9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/service/GCInspector;
1 10 1 state Lorg/apache/cassandra/service/GCInspector$State;
2 10 2 r [D
private static long getAllocatedDirectMemory();
descriptor: ()J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.apache.cassandra.service.GCInspector.BITS_TOTAL_CAPACITY:Ljava/lang/reflect/Field;
ifnonnull 1
ldc -1
lreturn
1: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.service.GCInspector.BITS_TOTAL_CAPACITY:Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.getLong:(Ljava/lang/Object;)J
2: lreturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 0
start local 0 4: getstatic org.apache.cassandra.service.GCInspector.logger:Lorg/slf4j/Logger;
ldc "Error accessing field of java.nio.Bits"
aload 0
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
5: ldc -1
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
4 6 0 t Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
}
SourceFile: "GCInspector.java"
NestMembers:
org.apache.cassandra.service.GCInspector$GCState org.apache.cassandra.service.GCInspector$State
InnerClasses:
final GCState = org.apache.cassandra.service.GCInspector$GCState of org.apache.cassandra.service.GCInspector
final State = org.apache.cassandra.service.GCInspector$State of org.apache.cassandra.service.GCInspector