class com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI extends com.oracle.truffle.tools.profiler.impl.ProfilerCLI
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI
super_class: com.oracle.truffle.tools.profiler.impl.ProfilerCLI
{
static final org.graalvm.options.OptionType<com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output> CLI_OUTPUT_TYPE;
descriptor: Lorg/graalvm/options/OptionType;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionType<Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;>;
static final org.graalvm.options.OptionType<com.oracle.truffle.tools.profiler.CPUSampler$Mode> CLI_MODE_TYPE;
descriptor: Lorg/graalvm/options/OptionType;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionType<Lcom/oracle/truffle/tools/profiler/CPUSampler$Mode;>;
static final org.graalvm.options.OptionKey<java.lang.Boolean> ENABLED;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Boolean;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "", help = "Enable the CPU sampler.", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<com.oracle.truffle.tools.profiler.CPUSampler$Mode> MODE;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Lcom/oracle/truffle/tools/profiler/CPUSampler$Mode;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "Mode", help = "Describe level of sampling detail. NOTE: Increased detail can lead to reduced accuracy. Modes: 'exclude_inlined_roots' - sample roots excluding inlined functions (default), 'roots' - sample roots including inlined functions, 'statements' - sample all statements.", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Long> SAMPLE_PERIOD;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Long;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "Period", help = "Period in milliseconds to sample the stack.", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Long> DELAY_PERIOD;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Long;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "Delay", help = "Delay the sampling for this many milliseconds (default: 0).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Integer> STACK_LIMIT;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "StackLimit", help = "Maximum number of maximum stack elements.", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output> OUTPUT;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "Output", help = "Print a 'histogram', 'calltree' or 'json' as output (default:HISTOGRAM).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Object[]> FILTER_ROOT;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<[Ljava/lang/Object;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "FilterRootName", help = "Wildcard filter for program roots. (eg. Math.*, default:*).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Object[]> FILTER_FILE;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<[Ljava/lang/Object;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "FilterFile", help = "Wildcard filter for source file paths. (eg. *program*.sl, default:*).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.String> FILTER_MIME_TYPE;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/String;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "FilterMimeType", help = "Only profile languages with mime-type. (eg. +, default:no filter).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.String> FILTER_LANGUAGE;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/String;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "FilterLanguage", help = "Only profile languages with given ID. (eg. js, default:no filter).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Boolean> SAMPLE_INTERNAL;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Boolean;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "SampleInternal", help = "Capture internal elements (default:false).", category = org.graalvm.options.OptionCategory.INTERNAL:Lorg/graalvm/options/OptionCategory;)
static final org.graalvm.options.OptionKey<java.lang.Boolean> SUMMARISE_THREADS;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Boolean;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "SummariseThreads", help = "Print output as a summary of all 'per thread' profiles. (default: false)", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Boolean> GATHER_HIT_TIMES;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Boolean;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "GatherHitTimes", help = "Save a timestamp for each taken sample (default:false).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.String> OUTPUT_FILE;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/String;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "OutputFile", help = "Save output to the given file. Output is printed to output stream by default.", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
static final org.graalvm.options.OptionKey<java.lang.Integer> MIN_SAMPLES;
descriptor: Lorg/graalvm/options/OptionKey;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/options/OptionKey<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option(name = "MinSamples", help = "Remove elements from output if they have less samples than this value (default: 0).", category = org.graalvm.options.OptionCategory.USER:Lorg/graalvm/options/OptionCategory;, stability = org.graalvm.options.OptionStability.STABLE:Lorg/graalvm/options/OptionStability;)
private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$tools$profiler$impl$CPUSamplerCLI$Output;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, 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=5, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI;
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.impl.CPUSamplerCLI.$assertionsDisabled:Z
3: new org.graalvm.options.OptionType
dup
ldc "Output"
4: new com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$1
dup
invokespecial com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$1.<init>:()V
5: invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.CLI_OUTPUT_TYPE:Lorg/graalvm/options/OptionType;
6: new org.graalvm.options.OptionType
dup
ldc "Mode"
7: new com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$2
dup
invokespecial com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$2.<init>:()V
8: invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.CLI_MODE_TYPE:Lorg/graalvm/options/OptionType;
9: new org.graalvm.options.OptionKey
dup
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.ENABLED:Lorg/graalvm/options/OptionKey;
10: new org.graalvm.options.OptionKey
dup
getstatic com.oracle.truffle.tools.profiler.CPUSampler$Mode.EXCLUDE_INLINED_ROOTS:Lcom/oracle/truffle/tools/profiler/CPUSampler$Mode;
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.CLI_MODE_TYPE:Lorg/graalvm/options/OptionType;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;Lorg/graalvm/options/OptionType;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.MODE:Lorg/graalvm/options/OptionKey;
11: new org.graalvm.options.OptionKey
dup
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.SAMPLE_PERIOD:Lorg/graalvm/options/OptionKey;
12: new org.graalvm.options.OptionKey
dup
lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.DELAY_PERIOD:Lorg/graalvm/options/OptionKey;
13: new org.graalvm.options.OptionKey
dup
sipush 10000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.STACK_LIMIT:Lorg/graalvm/options/OptionKey;
14: new org.graalvm.options.OptionKey
dup
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.HISTOGRAM:Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.CLI_OUTPUT_TYPE:Lorg/graalvm/options/OptionType;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;Lorg/graalvm/options/OptionType;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.OUTPUT:Lorg/graalvm/options/OptionKey;
15: new org.graalvm.options.OptionKey
dup
iconst_0
anewarray java.lang.Object
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.WILDCARD_FILTER_TYPE:Lorg/graalvm/options/OptionType;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;Lorg/graalvm/options/OptionType;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.FILTER_ROOT:Lorg/graalvm/options/OptionKey;
16: new org.graalvm.options.OptionKey
dup
iconst_0
anewarray java.lang.Object
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.WILDCARD_FILTER_TYPE:Lorg/graalvm/options/OptionType;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;Lorg/graalvm/options/OptionType;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.FILTER_FILE:Lorg/graalvm/options/OptionKey;
17: new org.graalvm.options.OptionKey
dup
ldc ""
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.FILTER_MIME_TYPE:Lorg/graalvm/options/OptionKey;
18: new org.graalvm.options.OptionKey
dup
ldc ""
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.FILTER_LANGUAGE:Lorg/graalvm/options/OptionKey;
19: new org.graalvm.options.OptionKey
dup
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.SAMPLE_INTERNAL:Lorg/graalvm/options/OptionKey;
20: new org.graalvm.options.OptionKey
dup
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.SUMMARISE_THREADS:Lorg/graalvm/options/OptionKey;
21: new org.graalvm.options.OptionKey
dup
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.GATHER_HIT_TIMES:Lorg/graalvm/options/OptionKey;
22: new org.graalvm.options.OptionKey
dup
ldc ""
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.OUTPUT_FILE:Lorg/graalvm/options/OptionKey;
23: new org.graalvm.options.OptionKey
dup
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.options.OptionKey.<init>:(Ljava/lang/Object;)V
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.MIN_SAMPLES:Lorg/graalvm/options/OptionKey;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.tools.profiler.impl.ProfilerCLI.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI;
static void handleOutput(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, com.oracle.truffle.tools.profiler.CPUSampler);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/tools/profiler/CPUSampler;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.OUTPUT_FILE:Lorg/graalvm/options/OptionKey;
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.chooseOutputStream:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/options/OptionKey;)Ljava/io/PrintStream;
astore 4
start local 4 2: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.hasStackOverflowed:()Z
ifeq 10
3: aload 4
ldc "-------------------------------------------------------------------------------- "
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: aload 4
new java.lang.StringBuilder
dup
ldc "ERROR: Shadow stack has overflowed its capacity of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getOptions:()Lorg/graalvm/options/OptionValues;
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.STACK_LIMIT:Lorg/graalvm/options/OptionKey;
invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " during execution!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: aload 4
ldc "The gathered data is incomplete and incorrect!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: aload 4
new java.lang.StringBuilder
dup
ldc "Use --cpusampler.StackLimit=<"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.STACK_LIMIT:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.options.OptionKey.getType:()Lorg/graalvm/options/OptionType;
invokevirtual org.graalvm.options.OptionType.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "> to set stack capacity."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: aload 4
ldc "-------------------------------------------------------------------------------- "
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: aload 4
ifnull 9
aload 4
invokevirtual java.io.PrintStream.close:()V
9: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.PrintStream
StackMap stack:
return
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getOptions:()Lorg/graalvm/options/OptionValues;
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.SUMMARISE_THREADS:Lorg/graalvm/options/OptionKey;
invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 5
start local 5 11: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getOptions:()Lorg/graalvm/options/OptionValues;
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.MIN_SAMPLES:Lorg/graalvm/options/OptionKey;
invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 6
start local 6 12: invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.$SWITCH_TABLE$com$oracle$truffle$tools$profiler$impl$CPUSamplerCLI$Output:()[I
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getOptions:()Lorg/graalvm/options/OptionValues;
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.OUTPUT:Lorg/graalvm/options/OptionKey;
invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output
invokevirtual com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 13
2: 15
3: 17
default: 18
}
13: StackMap locals: java.lang.Boolean java.lang.Integer
StackMap stack:
aload 4
aload 1
aload 5
invokevirtual java.lang.Boolean.booleanValue:()Z
aload 6
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printSamplingHistogram:(Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;ZLjava/lang/Integer;)V
14: goto 18
15: StackMap locals:
StackMap stack:
aload 4
aload 1
aload 5
aload 6
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printSamplingCallTree:(Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;Ljava/lang/Boolean;Ljava/lang/Integer;)V
16: goto 18
17: StackMap locals:
StackMap stack:
aload 4
aload 1
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printSamplingJson:(Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;)V
end local 6 end local 5 18: StackMap locals:
StackMap stack:
aload 4
ifnull 24
aload 4
invokevirtual java.io.PrintStream.close:()V
goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 2
aload 4
ifnull 20
aload 4
invokevirtual java.io.PrintStream.close:()V
end local 4 StackMap locals:
StackMap stack:
20: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 3
aload 2
ifnonnull 22
aload 3
astore 2
goto 23
StackMap locals:
StackMap stack:
22: aload 2
aload 3
if_acmpeq 23
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
23: aload 2
athrow
24: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
0 25 1 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
2 20 4 out Ljava/io/PrintStream;
11 18 5 summariseThreads Ljava/lang/Boolean;
12 18 6 minSamples Ljava/lang/Integer;
Exception table:
from to target type
2 8 19 any
10 18 19 any
1 9 21 any
10 21 21 any
MethodParameters:
Name Flags
env
sampler
private static void printSamplingJson(java.io.PrintStream, com.oracle.truffle.tools.profiler.CPUSampler);
descriptor: (Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.tools.utils.json.JSONObject
dup
invokespecial com.oracle.truffle.tools.utils.json.JSONObject.<init>:()V
astore 2
start local 2 1: aload 2
ldc "tool"
ldc "cpusampler"
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
2: aload 2
ldc "version"
ldc "0.4.0"
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
3: aload 2
ldc "sample_count"
aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getSampleCount:()J
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;J)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
4: aload 2
ldc "period"
aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getPeriod:()J
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;J)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
5: aload 2
ldc "gathered_hit_times"
aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.isGatherSelfHitTimes:()Z
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Z)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
6: new com.oracle.truffle.tools.utils.json.JSONArray
dup
invokespecial com.oracle.truffle.tools.utils.json.JSONArray.<init>:()V
astore 3
start local 3 7: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getThreadToNodesMap:()Ljava/util/Map;
astore 4
start local 4 8: aload 4
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 14
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler com.oracle.truffle.tools.utils.json.JSONObject com.oracle.truffle.tools.utils.json.JSONArray java.util.Map top java.util.Iterator
StackMap stack:
9: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 10: new com.oracle.truffle.tools.utils.json.JSONObject
dup
invokespecial com.oracle.truffle.tools.utils.json.JSONObject.<init>:()V
astore 7
start local 7 11: aload 7
ldc "thread"
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Thread
invokevirtual java.lang.Thread.toString:()Ljava/lang/String;
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
12: aload 7
ldc "samples"
aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.getSamplesRec:(Ljava/util/Collection;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
13: aload 3
aload 7
invokevirtual com.oracle.truffle.tools.utils.json.JSONArray.put:(Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
pop
end local 7 end local 5 14: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
15: aload 2
ldc "profile"
aload 3
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
16: aload 0
aload 2
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 out Ljava/io/PrintStream;
0 18 1 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
1 18 2 output Lcom/oracle/truffle/tools/utils/json/JSONObject;
7 18 3 profile Lcom/oracle/truffle/tools/utils/json/JSONArray;
8 18 4 threadToNodesMap Ljava/util/Map<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
10 14 5 entry Ljava/util/Map$Entry<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
11 14 7 perThreadProfile Lcom/oracle/truffle/tools/utils/json/JSONObject;
MethodParameters:
Name Flags
out
sampler
private static com.oracle.truffle.tools.utils.json.JSONArray getSamplesRec(java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>);
descriptor: (Ljava/util/Collection;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: new com.oracle.truffle.tools.utils.json.JSONArray
dup
invokespecial com.oracle.truffle.tools.utils.json.JSONArray.<init>:()V
astore 1
start local 1 1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 16
StackMap locals: java.util.Collection com.oracle.truffle.tools.utils.json.JSONArray top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 2
start local 2 3: new com.oracle.truffle.tools.utils.json.JSONObject
dup
invokespecial com.oracle.truffle.tools.utils.json.JSONObject.<init>:()V
astore 4
start local 4 4: aload 4
ldc "root_name"
aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getRootName:()Ljava/lang/String;
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
5: aload 4
ldc "source_section"
aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.sourceSectionToJSON:(Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
6: aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getPayload:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.CPUSampler$Payload
astore 5
start local 5 7: aload 4
ldc "hit_count"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getHitCount:()I
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;I)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
8: aload 4
ldc "interpreted_hit_count"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getInterpretedHitCount:()I
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;I)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
9: aload 4
ldc "compiled_hit_count"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getCompiledHitCount:()I
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;I)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
10: aload 4
ldc "self_hit_count"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfHitCount:()I
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;I)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
11: aload 4
ldc "self_interpreted_hit_count"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfInterpretedHitCount:()I
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;I)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
12: aload 4
ldc "self_compiled_hit_count"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfCompiledHitCount:()I
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;I)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
13: aload 4
ldc "self_hit_times"
aload 5
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfHitTimes:()Ljava/util/List;
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/util/Collection;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
14: aload 4
ldc "children"
aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.getSamplesRec:(Ljava/util/Collection;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
invokevirtual com.oracle.truffle.tools.utils.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONObject;
pop
15: aload 1
aload 4
invokevirtual com.oracle.truffle.tools.utils.json.JSONArray.put:(Ljava/lang/Object;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
pop
end local 5 end local 4 end local 2 16: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
17: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 nodes Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
1 18 1 samples Lcom/oracle/truffle/tools/utils/json/JSONArray;
3 16 2 node Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
4 16 4 sample Lcom/oracle/truffle/tools/utils/json/JSONObject;
7 16 5 payload Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;)Lcom/oracle/truffle/tools/utils/json/JSONArray;
MethodParameters:
Name Flags
nodes
private static java.util.Map<com.oracle.truffle.tools.profiler.impl.ProfilerCLI$SourceLocation, java.util.List<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>> computeHistogram(java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>);
descriptor: (Ljava/util/Collection;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: aload 0
aload 1
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeHistogramImpl:(Ljava/util/Collection;Ljava/util/Map;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 profilerNodes Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
1 3 1 histogram Ljava/util/Map<Lcom/oracle/truffle/tools/profiler/impl/ProfilerCLI$SourceLocation;Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;)Ljava/util/Map<Lcom/oracle/truffle/tools/profiler/impl/ProfilerCLI$SourceLocation;Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
MethodParameters:
Name Flags
profilerNodes
private static void computeHistogramImpl(java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>, java.util.Map<com.oracle.truffle.tools.profiler.impl.ProfilerCLI$SourceLocation, java.util.List<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>>);
descriptor: (Ljava/util/Collection;Ljava/util/Map;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: java.util.Collection java.util.Map top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 2
start local 2 2: aload 1
new com.oracle.truffle.tools.profiler.impl.ProfilerCLI$SourceLocation
dup
aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getRootName:()Ljava/lang/String;
invokespecial com.oracle.truffle.tools.profiler.impl.ProfilerCLI$SourceLocation.<init>:(Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)V
3: new com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$3
dup
invokespecial com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$3.<init>:()V
4: invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 5: aload 4
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 2
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
aload 1
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeHistogramImpl:(Ljava/util/Collection;Ljava/util/Map;)V
end local 4 end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 children Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
0 9 1 histogram Ljava/util/Map<Lcom/oracle/truffle/tools/profiler/impl/ProfilerCLI$SourceLocation;Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
2 7 2 treeNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
5 7 4 nodes Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;Ljava/util/Map<Lcom/oracle/truffle/tools/profiler/impl/ProfilerCLI$SourceLocation;Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;)V
MethodParameters:
Name Flags
children
histogram
private static void printSamplingHistogram(java.io.PrintStream, com.oracle.truffle.tools.profiler.CPUSampler, boolean, java.lang.Integer);
descriptor: (Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;ZLjava/lang/Integer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: bipush 10
istore 4
start local 4 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 2: iload 2
ifeq 3
aload 1
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.makeOneEntryMap:(Lcom/oracle/truffle/tools/profiler/CPUSampler;)Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
goto 4
StackMap locals: int java.util.Map
StackMap stack:
3: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getThreadToNodesMap:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
StackMap locals:
StackMap stack: java.util.Set
4: astore 6
start local 6 5: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 14
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set 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: new java.util.ArrayList
dup
aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeHistogram:(Ljava/util/Collection;)Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 9
start local 9 8: aload 9
new com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$4
dup
invokespecial com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$4.<init>:()V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
9: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 12
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set java.util.Map$Entry java.util.Iterator java.util.List top java.util.Iterator
StackMap stack:
10: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 10
start local 10 11: aload 10
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeRootNameMaxLength:(Lcom/oracle/truffle/tools/profiler/ProfilerNode;)I
iload 4
invokestatic java.lang.Math.max:(II)I
istore 4
end local 10 12: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
13: aload 5
aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Thread
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 7 14: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
15: new java.lang.StringBuilder
dup
ldc " %-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s | Total Time | Opt %% || Self Time | Opt %% | Location "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Name"
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 7
start local 7 16: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getSampleCount:()J
lstore 8
start local 8 17: ldc "-"
aload 7
invokevirtual java.lang.String.length:()I
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.repeat:(Ljava/lang/String;I)Ljava/lang/String;
astore 10
start local 10 18: aload 0
aload 10
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: aload 0
ldc "Histogram"
lload 8
aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getPeriod:()J
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printLegend:(Ljava/io/PrintStream;Ljava/lang/String;JJ)V
20: aload 0
aload 10
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: aload 5
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 32
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set java.lang.String long java.lang.String top java.util.Iterator
StackMap stack:
22: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 11
start local 11 23: iload 2
ifne 25
24: aload 0
new java.lang.StringBuilder
dup
ldc " Thread: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set java.lang.String long java.lang.String java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 0
aload 7
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: aload 0
aload 10
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: aload 11
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 30
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set java.lang.String long java.lang.String java.util.Map$Entry java.util.Iterator top java.util.Iterator
StackMap stack:
28: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 13
start local 13 29: aload 0
aload 1
ldc ""
aload 13
iload 4
iconst_0
aload 3
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printAttributes:(Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;Ljava/lang/String;Ljava/util/List;IZLjava/lang/Integer;)Z
pop
end local 13 30: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
31: aload 0
aload 10
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 11 32: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler int java.lang.Integer int java.util.Map java.util.Set java.lang.String long java.lang.String top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
33: return
end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 out Ljava/io/PrintStream;
0 34 1 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
0 34 2 summariseThreads Z
0 34 3 minSamples Ljava/lang/Integer;
1 34 4 maxLength I
2 34 5 linesPerThread Ljava/util/Map<Ljava/lang/Thread;Ljava/util/List<Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;>;
5 34 6 entrySet Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;>;
7 14 7 node Ljava/util/Map$Entry<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
8 14 9 lines Ljava/util/List<Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
11 12 10 line Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
16 34 7 title Ljava/lang/String;
17 34 8 samples J
18 34 10 sep Ljava/lang/String;
23 32 11 entry Ljava/util/Map$Entry<Ljava/lang/Thread;Ljava/util/List<Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;>;
29 30 13 line Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
MethodParameters:
Name Flags
out
sampler
summariseThreads
minSamples
private static java.util.Map<java.lang.Thread, java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>> makeOneEntryMap(com.oracle.truffle.tools.profiler.CPUSampler);
descriptor: (Lcom/oracle/truffle/tools/profiler/CPUSampler;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.util.HashMap
dup
iconst_1
invokespecial java.util.HashMap.<init>:(I)V
astore 1
start local 1 1: aload 1
new java.lang.Thread
dup
ldc "Summary"
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getRootNodes:()Ljava/util/Collection;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
1 3 1 oneElementMap Ljava/util/Map<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
Signature: (Lcom/oracle/truffle/tools/profiler/CPUSampler;)Ljava/util/Map<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
MethodParameters:
Name Flags
sampler
private static void printSamplingCallTree(java.io.PrintStream, com.oracle.truffle.tools.profiler.CPUSampler, java.lang.Boolean, java.lang.Integer);
descriptor: (Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;Ljava/lang/Boolean;Ljava/lang/Integer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 1: aload 2
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 2
aload 1
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.makeOneEntryMap:(Lcom/oracle/truffle/tools/profiler/CPUSampler;)Ljava/util/Map;
goto 3
StackMap locals: java.util.Collection
StackMap stack:
2: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getThreadToNodesMap:()Ljava/util/Map;
StackMap locals:
StackMap stack: java.util.Map
3: astore 5
start local 5 4: aload 5
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 7
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.Boolean java.lang.Integer java.util.Collection java.util.Map top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Collection
astore 6
start local 6 6: aload 4
aload 6
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
end local 6 7: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: bipush 10
aload 4
iconst_0
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeTitleMaxLength:(Ljava/util/Collection;I)I
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 9: new java.lang.StringBuilder
dup
ldc " %-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s | Total Time | Opt %% || Self Time | Opt %% | Location "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Name"
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 7
start local 7 10: ldc "-"
aload 7
invokevirtual java.lang.String.length:()I
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.repeat:(Ljava/lang/String;I)Ljava/lang/String;
astore 8
start local 8 11: aload 0
aload 8
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: aload 0
ldc "CallTree"
aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getSampleCount:()J
aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getPeriod:()J
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printLegend:(Ljava/io/PrintStream;Ljava/lang/String;JJ)V
13: aload 0
aload 8
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: aload 5
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 22
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.Boolean java.lang.Integer java.util.Collection java.util.Map int java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
15: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 9
start local 9 16: aload 2
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 18
17: aload 0
new java.lang.StringBuilder
dup
ldc " Thread: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.Boolean java.lang.Integer java.util.Collection java.util.Map int java.lang.String java.lang.String java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 0
aload 7
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: aload 0
aload 8
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: aload 1
iload 6
ldc ""
aload 9
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
aload 0
aload 3
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printSamplingCallTreeRec:(Lcom/oracle/truffle/tools/profiler/CPUSampler;ILjava/lang/String;Ljava/util/Collection;Ljava/io/PrintStream;Ljava/lang/Integer;)V
21: aload 0
aload 8
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 9 22: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.Boolean java.lang.Integer java.util.Collection java.util.Map int java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
23: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 out Ljava/io/PrintStream;
0 24 1 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
0 24 2 summariseThreads Ljava/lang/Boolean;
0 24 3 minSamples Ljava/lang/Integer;
1 24 4 actualRoots Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
4 24 5 threadToNodesMap Ljava/util/Map<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
6 7 6 node Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
9 24 6 maxLength I
10 24 7 title Ljava/lang/String;
11 24 8 sep Ljava/lang/String;
16 22 9 node Ljava/util/Map$Entry<Ljava/lang/Thread;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;>;
MethodParameters:
Name Flags
out
sampler
summariseThreads
minSamples
private static void printSamplingCallTreeRec(com.oracle.truffle.tools.profiler.CPUSampler, int, java.lang.String, java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>, java.io.PrintStream, java.lang.Integer);
descriptor: (Lcom/oracle/truffle/tools/profiler/CPUSampler;ILjava/lang/String;Ljava/util/Collection;Ljava/io/PrintStream;Ljava/lang/Integer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 6
start local 6 1: aload 6
new com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$5
dup
invokespecial com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$5.<init>:()V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
2: aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 10
StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler int java.lang.String java.util.Collection java.io.PrintStream java.lang.Integer java.util.List top java.util.Iterator
StackMap stack:
3: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 7
start local 7 4: aload 7
ifnonnull 6
5: goto 10
6: StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler int java.lang.String java.util.Collection java.io.PrintStream java.lang.Integer java.util.List com.oracle.truffle.tools.profiler.ProfilerNode java.util.Iterator
StackMap stack:
aload 4
aload 0
aload 2
iconst_1
anewarray com.oracle.truffle.tools.profiler.ProfilerNode
dup
iconst_0
aload 7
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
iload 1
iconst_1
aload 5
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printAttributes:(Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;Ljava/lang/String;Ljava/util/List;IZLjava/lang/Integer;)Z
istore 9
start local 9 7: aload 0
iload 1
iload 9
ifeq 8
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 9
StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler int java.lang.String java.util.Collection java.io.PrintStream java.lang.Integer java.util.List com.oracle.truffle.tools.profiler.ProfilerNode java.util.Iterator int
StackMap stack: com.oracle.truffle.tools.profiler.CPUSampler int
8: aload 2
StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler int java.lang.String java.util.Collection java.io.PrintStream java.lang.Integer java.util.List com.oracle.truffle.tools.profiler.ProfilerNode java.util.Iterator int
StackMap stack: com.oracle.truffle.tools.profiler.CPUSampler int java.lang.String
9: aload 7
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
aload 4
aload 5
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.printSamplingCallTreeRec:(Lcom/oracle/truffle/tools/profiler/CPUSampler;ILjava/lang/String;Ljava/util/Collection;Ljava/io/PrintStream;Ljava/lang/Integer;)V
end local 9 end local 7 10: StackMap locals: com.oracle.truffle.tools.profiler.CPUSampler int java.lang.String java.util.Collection java.io.PrintStream java.lang.Integer java.util.List top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
11: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
0 12 1 maxRootLength I
0 12 2 prefix Ljava/lang/String;
0 12 3 children Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
0 12 4 out Ljava/io/PrintStream;
0 12 5 minSamples Ljava/lang/Integer;
1 12 6 sortedChildren Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
4 10 7 treeNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
7 10 9 printed Z
Signature: (Lcom/oracle/truffle/tools/profiler/CPUSampler;ILjava/lang/String;Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;Ljava/io/PrintStream;Ljava/lang/Integer;)V
MethodParameters:
Name Flags
sampler
maxRootLength
prefix
children
out
minSamples
private static void printLegend(java.io.PrintStream, java.lang.String, long, long);
descriptor: (Ljava/io/PrintStream;Ljava/lang/String;JJ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
ldc "Sampling %s. Recorded %s samples with period %dms."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
lload 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 0
ldc " Self Time: Time spent on the top of the stack."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: aload 0
ldc " Total Time: Time spent somewhere on the stack."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: aload 0
ldc " Opt %: Percent of time spent in compiled and therefore non-interpreted code."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 out Ljava/io/PrintStream;
0 5 1 type Ljava/lang/String;
0 5 2 samples J
0 5 4 period J
MethodParameters:
Name Flags
out
type
samples
period
private static int computeTitleMaxLength(java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>, );
descriptor: (Ljava/util/Collection;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: iload 1
istore 2
start local 2 1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: java.util.Collection int int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 3
start local 3 3: aload 3
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeRootNameMaxLength:(Lcom/oracle/truffle/tools/profiler/ProfilerNode;)I
istore 5
start local 5 4: iload 1
iload 5
iadd
iload 2
invokestatic java.lang.Math.max:(II)I
istore 2
5: iload 2
aload 3
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
iload 1
iconst_1
iadd
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.computeTitleMaxLength:(Ljava/util/Collection;I)I
invokestatic java.lang.Math.max:(II)I
istore 2
end local 5 end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 children Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
0 8 1 baseLength I
1 8 2 maxLength I
3 6 3 treeNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
4 6 5 rootNameLength I
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;I)I
MethodParameters:
Name Flags
children
baseLength
private static boolean intersectsLines(com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/source/SourceSection;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
istore 2
start local 2 1: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getEndLine:()I
istore 3
start local 3 2: aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
istore 4
start local 4 3: aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getEndLine:()I
istore 5
start local 5 4: iload 3
iload 4
if_icmplt 5
iload 5
iload 2
if_icmplt 5
iconst_1
ireturn
StackMap locals: com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.source.SourceSection int int int int
StackMap stack:
5: iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 section1 Lcom/oracle/truffle/api/source/SourceSection;
0 6 1 section2 Lcom/oracle/truffle/api/source/SourceSection;
1 6 2 x1 I
2 6 3 x2 I
3 6 4 y1 I
4 6 5 y2 I
MethodParameters:
Name Flags
section1
section2
private static boolean printAttributes(java.io.PrintStream, com.oracle.truffle.tools.profiler.CPUSampler, java.lang.String, java.util.List<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>, int, boolean, java.lang.Integer);
descriptor: (Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;Ljava/lang/String;Ljava/util/List;IZLjava/lang/Integer;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=41, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getPeriod:()J
lstore 7
start local 7 1: aload 1
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler.getSampleCount:()J
lstore 9
start local 9 2: lconst_0
lstore 11
start local 11 3: lconst_0
lstore 13
start local 13 4: lconst_0
lstore 15
start local 15 5: lconst_0
lstore 17
start local 17 6: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 20
goto 20
StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.String java.util.List int int java.lang.Integer long long long long long long top java.util.Iterator
StackMap stack:
7: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 19
start local 19 8: aload 19
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getPayload:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.CPUSampler$Payload
astore 21
start local 21 9: lload 11
aload 21
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfInterpretedHitCount:()I
i2l
ladd
lstore 11
10: lload 13
aload 21
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfCompiledHitCount:()I
i2l
ladd
lstore 13
11: aload 19
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.isRecursive:()Z
ifne 14
12: lload 15
aload 21
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getInterpretedHitCount:()I
i2l
ladd
lstore 15
13: lload 17
aload 21
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getCompiledHitCount:()I
i2l
ladd
lstore 17
14: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.String java.util.List int int java.lang.Integer long long long long long long com.oracle.truffle.tools.profiler.ProfilerNode java.util.Iterator com.oracle.truffle.tools.profiler.CPUSampler$Payload
StackMap stack:
iload 5
ifeq 20
15: getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.$assertionsDisabled:Z
ifne 16
aload 3
invokeinterface java.util.List.size:()I
iconst_1
if_icmpeq 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 19
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 22
start local 22 17: aload 19
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getRootName:()Ljava/lang/String;
astore 23
start local 23 18: aload 22
aload 23
lload 13
aload 19
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
iconst_1
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.getSelfHitCountForRecursiveChildren:(Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;JLjava/util/Collection;Z)J
lstore 13
19: aload 22
aload 23
lload 11
aload 19
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
iconst_0
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.getSelfHitCountForRecursiveChildren:(Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;JLjava/util/Collection;Z)J
lstore 11
end local 23 end local 22 end local 21 end local 19 20: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.String java.util.List int int java.lang.Integer long long long long long long top java.util.Iterator
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
21: lload 15
lload 17
ladd
lstore 19
start local 19 22: lload 19
aload 6
invokevirtual java.lang.Integer.intValue:()I
i2l
lcmp
ifgt 24
23: iconst_0
ireturn
24: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.String java.util.List int int java.lang.Integer long long long long long long long
StackMap stack:
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.$assertionsDisabled:Z
ifne 25
lload 19
lload 9
lcmp
iflt 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: StackMap locals:
StackMap stack:
aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 21
start local 21 26: aload 21
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 22
start local 22 27: aload 21
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getRootName:()Ljava/lang/String;
astore 23
start local 23 28: aload 21
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getTags:()Ljava/util/Set;
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 30
29: new java.lang.StringBuilder
dup
aload 23
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "~"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 22
aload 21
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.needsColumnSpecifier:(Lcom/oracle/truffle/tools/profiler/ProfilerNode;)Z
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.formatIndices:(Lcom/oracle/truffle/api/source/SourceSection;Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 23
30: StackMap locals: com.oracle.truffle.tools.profiler.ProfilerNode com.oracle.truffle.api.source.SourceSection java.lang.String
StackMap stack:
lload 11
lload 13
ladd
lstore 24
start local 24 31: lload 24
lload 7
lmul
lstore 26
start local 26 32: lload 24
l2d
lload 9
l2d
ddiv
dstore 28
start local 28 33: dconst_0
dstore 30
start local 30 34: lload 24
lconst_0
lcmp
ifle 36
35: lload 13
l2d
lload 24
l2d
ddiv
dstore 30
36: StackMap locals: java.io.PrintStream com.oracle.truffle.tools.profiler.CPUSampler java.lang.String java.util.List int int java.lang.Integer long long long long long long long com.oracle.truffle.tools.profiler.ProfilerNode com.oracle.truffle.api.source.SourceSection java.lang.String long long double double
StackMap stack:
ldc "%10dms %5.1f%% | %5.1f%%"
iconst_3
anewarray java.lang.Object
dup
iconst_0
lload 26
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
dload 28
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
dload 30
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 32
start local 32 37: lload 19
lload 7
lmul
lstore 33
start local 33 38: lload 19
l2d
lload 9
l2d
ddiv
dstore 35
start local 35 39: lload 17
l2d
lload 19
l2d
ddiv
dstore 37
start local 37 40: ldc "%10dms %5.1f%% | %5.1f%%"
iconst_3
anewarray java.lang.Object
dup
iconst_0
lload 33
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
dload 35
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
dload 37
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 39
start local 39 41: aload 22
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.getShortDescription:(Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
astore 40
start local 40 42: aload 0
new java.lang.StringBuilder
dup
ldc " %-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
bipush 10
invokestatic java.lang.Math.max:(II)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s | %s || %s | %s "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_4
anewarray java.lang.Object
dup
iconst_0
43: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 23
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 39
aastore
dup
iconst_2
aload 32
aastore
dup
iconst_3
aload 40
aastore
44: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
45: iconst_1
ireturn
end local 40 end local 39 end local 37 end local 35 end local 33 end local 32 end local 30 end local 28 end local 26 end local 24 end local 23 end local 22 end local 21 end local 19 end local 17 end local 15 end local 13 end local 11 end local 9 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 out Ljava/io/PrintStream;
0 46 1 sampler Lcom/oracle/truffle/tools/profiler/CPUSampler;
0 46 2 prefix Ljava/lang/String;
0 46 3 nodes Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
0 46 4 maxRootLength I
0 46 5 callTree Z
0 46 6 minSamples Ljava/lang/Integer;
1 46 7 samplePeriod J
2 46 9 samples J
3 46 11 selfInterpreted J
4 46 13 selfCompiled J
5 46 15 totalInterpreted J
6 46 17 totalCompiled J
8 20 19 tree Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
9 20 21 payload Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;
17 20 22 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
18 20 23 rootName Ljava/lang/String;
22 46 19 totalSamples J
26 46 21 firstNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
27 46 22 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
28 46 23 rootName Ljava/lang/String;
31 46 24 selfSamples J
32 46 26 selfTime J
33 46 28 selfCost D
34 46 30 selfCompiledP D
37 46 32 selfTimes Ljava/lang/String;
38 46 33 totalTime J
39 46 35 totalCost D
40 46 37 totalCompiledP D
41 46 39 totalTimes Ljava/lang/String;
42 46 40 location Ljava/lang/String;
Signature: (Ljava/io/PrintStream;Lcom/oracle/truffle/tools/profiler/CPUSampler;Ljava/lang/String;Ljava/util/List<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;IZLjava/lang/Integer;)Z
MethodParameters:
Name Flags
out
sampler
prefix
nodes
maxRootLength
callTree
minSamples
private static long getSelfHitCountForRecursiveChildren(com.oracle.truffle.api.source.SourceSection, java.lang.String, long, java.util.Collection<com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>>, );
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;JLjava/util/Collection;Z)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: lconst_0
lstore 6
start local 6 1: aload 4
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 9
goto 9
StackMap locals: com.oracle.truffle.api.source.SourceSection java.lang.String long java.util.Collection int long top java.util.Iterator
StackMap stack:
2: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 8
start local 8 3: aload 8
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.equals:(Ljava/lang/Object;)Z
ifeq 9
aload 8
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getRootName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
4: iload 5
ifeq 7
5: lload 6
aload 8
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getPayload:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.CPUSampler$Payload
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfCompiledHitCount:()I
i2l
ladd
lstore 6
6: goto 8
7: StackMap locals: com.oracle.truffle.api.source.SourceSection java.lang.String long java.util.Collection int long com.oracle.truffle.tools.profiler.ProfilerNode java.util.Iterator
StackMap stack:
lload 6
aload 8
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getPayload:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.CPUSampler$Payload
invokevirtual com.oracle.truffle.tools.profiler.CPUSampler$Payload.getSelfInterpretedHitCount:()I
i2l
ladd
lstore 6
8: StackMap locals:
StackMap stack:
lload 6
aload 0
aload 1
lload 6
aload 8
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
iload 5
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.getSelfHitCountForRecursiveChildren:(Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;JLjava/util/Collection;Z)J
ladd
lstore 6
end local 8 9: StackMap locals: com.oracle.truffle.api.source.SourceSection java.lang.String long java.util.Collection int long top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
10: lload 2
lload 6
ladd
lreturn
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 11 1 rootName Ljava/lang/String;
0 11 2 selfCompiled J
0 11 4 children Ljava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;
0 11 5 compiled Z
1 11 6 hitCount J
3 9 8 child Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
Signature: (Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;JLjava/util/Collection<Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;>;Z)J
MethodParameters:
Name Flags
sourceSection
rootName
selfCompiled
children
compiled
private static boolean needsColumnSpecifier(com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>);
descriptor: (Lcom/oracle/truffle/tools/profiler/ProfilerNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 2
start local 2 2: aload 0
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getParent:()Lcom/oracle/truffle/tools/profiler/ProfilerNode;
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getChildren:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: com.oracle.truffle.tools.profiler.ProfilerNode int com.oracle.truffle.api.source.SourceSection top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.tools.profiler.ProfilerNode
astore 3
start local 3 4: aload 3
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 2
if_acmpne 6
5: goto 9
6: StackMap locals: com.oracle.truffle.tools.profiler.ProfilerNode int com.oracle.truffle.api.source.SourceSection com.oracle.truffle.tools.profiler.ProfilerNode java.util.Iterator
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 2
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.intersectsLines:(Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifeq 9
7: iconst_1
istore 1
8: goto 10
end local 3 9: StackMap locals: com.oracle.truffle.tools.profiler.ProfilerNode int com.oracle.truffle.api.source.SourceSection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
10: StackMap locals: com.oracle.truffle.tools.profiler.ProfilerNode int com.oracle.truffle.api.source.SourceSection
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 firstNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
1 11 1 needsColumnsSpecifier Z
2 11 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
4 9 3 node Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
Signature: (Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;)Z
MethodParameters:
Name Flags
firstNode
private static int computeRootNameMaxLength(com.oracle.truffle.tools.profiler.ProfilerNode<com.oracle.truffle.tools.profiler.CPUSampler$Payload>);
descriptor: (Lcom/oracle/truffle/tools/profiler/ProfilerNode;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getRootName:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
istore 1
start local 1 1: aload 0
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getTags:()Ljava/util/Set;
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
2: iload 1
aload 0
invokevirtual com.oracle.truffle.tools.profiler.ProfilerNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 0
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.needsColumnSpecifier:(Lcom/oracle/truffle/tools/profiler/ProfilerNode;)Z
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.formatIndices:(Lcom/oracle/truffle/api/source/SourceSection;Z)Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
iadd
iadd
istore 1
3: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 treeNode Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;
1 4 1 length I
Signature: (Lcom/oracle/truffle/tools/profiler/ProfilerNode<Lcom/oracle/truffle/tools/profiler/CPUSampler$Payload;>;)I
MethodParameters:
Name Flags
treeNode
static int[] $SWITCH_TABLE$com$oracle$truffle$tools$profiler$impl$CPUSamplerCLI$Output();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.$SWITCH_TABLE$com$oracle$truffle$tools$profiler$impl$CPUSamplerCLI$Output:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.values:()[Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.CALLTREE:Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;
invokevirtual com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.HISTOGRAM:Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;
invokevirtual com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.JSON:Lcom/oracle/truffle/tools/profiler/impl/CPUSamplerCLI$Output;
invokevirtual com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI.$SWITCH_TABLE$com$oracle$truffle$tools$profiler$impl$CPUSamplerCLI$Output:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "CPUSamplerCLI.java"
NestMembers:
com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$1 com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$2 com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$3 com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$4 com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$5 com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output
InnerClasses:
public abstract Group = com.oracle.truffle.api.Option$Group of com.oracle.truffle.api.Option
public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
public final Mode = com.oracle.truffle.tools.profiler.CPUSampler$Mode of com.oracle.truffle.tools.profiler.CPUSampler
public final Payload = com.oracle.truffle.tools.profiler.CPUSampler$Payload of com.oracle.truffle.tools.profiler.CPUSampler
com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$1
com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$2
com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$3
com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$4
com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$5
final Output = com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI$Output of com.oracle.truffle.tools.profiler.impl.CPUSamplerCLI
SourceLocation = com.oracle.truffle.tools.profiler.impl.ProfilerCLI$SourceLocation of com.oracle.truffle.tools.profiler.impl.ProfilerCLI
public abstract Entry = java.util.Map$Entry of java.util.Map
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.Option$Group(value = {"cpusampler"})