class com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask extends java.util.TimerTask
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask
super_class: java.util.TimerTask
{
final com.oracle.truffle.tools.profiler.CPUSampler this$0;
descriptor: Lcom/oracle/truffle/tools/profiler/CPUSampler;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/tools/profiler/CPUSampler;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(com.oracle.truffle.tools.profiler.CPUSampler);
descriptor: (Lcom/oracle/truffle/tools/profiler/CPUSampler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
aload 0
invokespecial java.util.TimerTask.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tools/profiler/CPUSampler$SamplingTimerTask;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
getfield com.oracle.truffle.tools.profiler.CPUSampler.delaySamplingUntilNonInternalLangInit:Z
ifeq 2
aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
getfield com.oracle.truffle.tools.profiler.CPUSampler.nonInternalLanguageContextInitialized:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 3: iconst_0
istore 3
start local 3 4: aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
getfield com.oracle.truffle.tools.profiler.CPUSampler.shadowStack:Lcom/oracle/truffle/tools/profiler/ShadowStack;
astore 4
start local 4 5: aload 4
ifnull 16
6: aload 4
invokevirtual com.oracle.truffle.tools.profiler.ShadowStack.getStacks:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask long int com.oracle.truffle.tools.profiler.ShadowStack top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack
astore 5
start local 5 8: aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
dup
astore 8
monitorenter
9: aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
getfield com.oracle.truffle.tools.profiler.CPUSampler.rootNodes:Ljava/util/Map;
aload 5
invokevirtual com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack.getThread:()Ljava/lang/Thread;
new com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask$1
dup
aload 0
invokespecial com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask$1.<init>:(Lcom/oracle/truffle/tools/profiler/CPUSampler$SamplingTimerTask;)V
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 7
start local 7 10: aload 8
monitorexit
11: goto 14
end local 7 StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask long int com.oracle.truffle.tools.profiler.ShadowStack com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack java.util.Iterator top com.oracle.truffle.tools.profiler.CPUSampler
StackMap stack: java.lang.Throwable
12: aload 8
monitorexit
13: athrow
start local 7 14: StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask long int com.oracle.truffle.tools.profiler.ShadowStack com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack java.util.Iterator com.oracle.truffle.tools.profiler.ProfilerNode
StackMap stack:
iload 3
aload 0
aload 5
lload 1
aload 7
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.sample:(Lcom/oracle/truffle/tools/profiler/ShadowStack$ThreadLocalStack;JLcom/oracle/truffle/tools/profiler/ProfilerNode;)Z
ior
istore 3
end local 7 end local 5 15: StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask long int com.oracle.truffle.tools.profiler.ShadowStack top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
16: StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask long int com.oracle.truffle.tools.profiler.ShadowStack
StackMap stack:
iload 3
ifeq 18
17: aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
getfield com.oracle.truffle.tools.profiler.CPUSampler.samplesTaken:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
18: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/tools/profiler/CPUSampler$SamplingTimerTask;
3 19 1 timestamp J
4 19 3 sampleTaken Z
5 19 4 localShadowStack Lcom/oracle/truffle/tools/profiler/ShadowStack;
8 15 5 stack Lcom/oracle/truffle/tools/profiler/ShadowStack$ThreadLocalStack;
10 12 7 threadNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
14 15 7 threadNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
Exception table:
from to target type
9 11 12 any
12 13 12 any
boolean sample(com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack, long, com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>);
descriptor: (Lcom/oracle/truffle/tools/profiler/ShadowStack$ThreadLocalStack;JLcom/oracle/truffle/tools/profiler/ProfilerNode;)Z
flags: (0x0000)
Code:
stack=3, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
invokevirtual com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack.hasStackOverflowed:()Z
ifeq 3
1: aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
iconst_1
putfield com.oracle.truffle.tools.profiler.CPUSampler.stackOverflowed:Z
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack.getStackIndex:()I
iconst_m1
if_icmpne 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack.getStack:()[Lcom/oracle/truffle/tools/profiler/StackTraceEntry;
astore 5
start local 5 6: aload 5
ifnull 7
aload 5
arraylength
ifne 8
7: StackMap locals: com.oracle.truffle.tools.profiler.StackTraceEntry[]
StackMap stack:
iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
dup
astore 6
monitorenter
9: aload 4
astore 7
start local 7 10: iconst_0
istore 8
start local 8 11: goto 29
12: StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler com.oracle.truffle.tools.profiler.ProfilerNode int
StackMap stack:
aload 5
iload 8
aaload
astore 9
start local 9 13: aload 9
invokevirtual com.oracle.truffle.tools.profiler.StackTraceEntry.isCompiled:()Z
istore 10
start local 10 14: aload 0
aload 7
aload 9
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.addOrUpdateChild:(Lcom/oracle/truffle/tools/profiler/ProfilerNode;Lcom/oracle/truffle/tools/profiler/StackTraceEntry;)Lcom/oracle/truffle/tools/profiler/ProfilerNode;
astore 7
15: aload 7
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getPayload:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.CPUSampler$Payload
astore 11
start local 11 16: iload 8
aload 5
arraylength
iconst_1
isub
if_icmpne 24
17: iload 10
ifeq 20
18: aload 11
dup
getfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.selfCompiledHitCount:I
iconst_1
iadd
putfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.selfCompiledHitCount:I
19: goto 21
20: StackMap locals: com.oracle.truffle.tools.profiler.StackTraceEntry int com.oracle.truffle.tools.profiler.CPUSampler$Payload
StackMap stack:
aload 11
dup
getfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.selfInterpretedHitCount:I
iconst_1
iadd
putfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.selfInterpretedHitCount:I
21: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.this$0:Lcom/oracle/truffle/tools/profiler/CPUSampler;
getfield com.oracle.truffle.tools.profiler.CPUSampler.gatherSelfHitTimes:Z
ifeq 24
22: aload 11
getfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.selfHitTimes:Ljava/util/List;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: getstatic com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask.$assertionsDisabled:Z
ifne 24
aload 11
getfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.selfHitTimes:Ljava/util/List;
invokeinterface java.util.List.size:()I
aload 11
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfHitCount:()I
if_icmpeq 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
24: StackMap locals:
StackMap stack:
iload 10
ifeq 27
25: aload 11
dup
getfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.compiledHitCount:I
iconst_1
iadd
putfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.compiledHitCount:I
26: goto 28
27: StackMap locals:
StackMap stack:
aload 11
dup
getfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.interpretedHitCount:I
iconst_1
iadd
putfield com.oracle.truffle.tools.profiler.CPUSampler$Payload.interpretedHitCount:I
end local 11 end local 10 end local 9 28: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
29: iload 8
aload 5
arraylength
if_icmplt 12
end local 8 end local 7 30: aload 6
monitorexit
31: goto 34
StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack long com.oracle.truffle.tools.profiler.ProfilerNode com.oracle.truffle.tools.profiler.StackTraceEntry[] com.oracle.truffle.tools.profiler.CPUSampler
StackMap stack: java.lang.Throwable
32: aload 6
monitorexit
33: athrow
34: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/oracle/truffle/tools/profiler/CPUSampler$SamplingTimerTask;
0 35 1 stack Lcom/oracle/truffle/tools/profiler/ShadowStack$ThreadLocalStack;
0 35 2 timestamp J
0 35 4 threadNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
6 35 5 stackFrames [Lcom/oracle/truffle/tools/profiler/StackTraceEntry;
10 30 7 treeNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
11 30 8 i I
13 28 9 location Lcom/oracle/truffle/tools/profiler/StackTraceEntry;
14 28 10 isCompiled Z
16 28 11 payload Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;
Exception table:
from to target type
9 31 32 any
32 33 32 any
Signature: (Lcom/oracle/truffle/tools/profiler/ShadowStack$ThreadLocalStack;JLcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;)Z
MethodParameters:
Name Flags
stack
timestamp
threadNode
private com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload> addOrUpdateChild(com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>, com.oracle.truffle.tools.profiler.StackTraceEntry);
descriptor: (Lcom/oracle/truffle/tools/profiler/ProfilerNode;Lcom/oracle/truffle/tools/profiler/StackTraceEntry;)Lcom/oracle/truffle/tools/profiler/ProfilerNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.findChild:(Lcom/oracle/truffle/tools/profiler/StackTraceEntry;)Lcom/oracle/truffle/tools/profiler/ProfilerNode;
astore 3
start local 3 1: aload 3
ifnonnull 5
2: new com.oracle.truffle.tools.profiler.CPUSampler$Payload
dup
invokespecial com.oracle.truffle.tools.profiler.CPUSampler$Payload.<init>:()V
astore 4
start local 4 3: new com.oracle.truffle.tools.profiler.ProfilerNode
dup
aload 1
aload 2
aload 4
invokespecial com.oracle.truffle.tools.profiler.ProfilerNode.<init>:(Lcom/oracle/truffle/tools/profiler/ProfilerNode;Lcom/oracle/truffle/tools/profiler/StackTraceEntry;Ljava/lang/Object;)V
astore 3
4: aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.addChild:(Lcom/oracle/truffle/tools/profiler/StackTraceEntry;Lcom/oracle/truffle/tools/profiler/ProfilerNode;)V
end local 4 5: StackMap locals: com.oracle.truffle.tools.profiler.ProfilerNode
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/tools/profiler/CPUSampler$SamplingTimerTask;
0 6 1 treeNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
0 6 2 location Lcom/oracle/truffle/tools/profiler/StackTraceEntry;
1 6 3 child Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
3 5 4 payload Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;
Signature: (Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;Lcom/oracle/truffle/tools/profiler/StackTraceEntry;)Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
MethodParameters:
Name Flags
treeNode
location
}
SourceFile: "CPUSampler.java"
NestHost: com.oracle.truffle.tools.profiler.CPUSampler
InnerClasses:
public final Payload = com.oracle.truffle.tools.profiler.CPUSampler$Payload of com.oracle.truffle.tools.profiler.CPUSampler
private SamplingTimerTask = com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask of com.oracle.truffle.tools.profiler.CPUSampler
com.oracle.truffle.tools.profiler.CPUSampler$SamplingTimerTask$1
final ThreadLocalStack = com.oracle.truffle.tools.profiler.ShadowStack$ThreadLocalStack of com.oracle.truffle.tools.profiler.ShadowStack