public abstract class org.openjdk.jmh.profile.AbstractPerfAsmProfiler implements org.openjdk.jmh.profile.ExternalProfiler
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.openjdk.jmh.profile.AbstractPerfAsmProfiler
super_class: java.lang.Object
{
protected final java.util.List<java.lang.String> events;
descriptor: Ljava/util/List;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
private final double regionRateThreshold;
descriptor: D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int regionShowTop;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int regionTooBigThreshold;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int printMargin;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mergeMargin;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int delayMsec;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int lengthMsec;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean skipAssembly;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean skipInterpreter;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean skipVMStubs;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean savePerfOutput;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String savePerfOutputTo;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String savePerfOutputToFile;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean savePerfBin;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String savePerfBinTo;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String savePerfBinFile;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean saveLog;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String saveLogTo;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String saveLogToFile;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean printCompilationInfo;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean intelSyntax;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final org.openjdk.jmh.util.TempFile hsLog;
descriptor: Lorg/openjdk/jmh/util/TempFile;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.openjdk.jmh.util.TempFile perfBinData;
descriptor: Lorg/openjdk/jmh/util/TempFile;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.openjdk.jmh.util.TempFile perfParsedData;
descriptor: Lorg/openjdk/jmh/util/TempFile;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final joptsimple.OptionSet set;
descriptor: Ljoptsimple/OptionSet;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final boolean drawIntraJumps;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean drawInterJumps;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=4, locals=29, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc "hslog"
invokestatic org.openjdk.jmh.util.FileUtils.weakTempFile:(Ljava/lang/String;)Lorg/openjdk/jmh/util/TempFile;
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.hsLog:Lorg/openjdk/jmh/util/TempFile;
2: aload 0
ldc "perfbin"
invokestatic org.openjdk.jmh.util.FileUtils.weakTempFile:(Ljava/lang/String;)Lorg/openjdk/jmh/util/TempFile;
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
3: aload 0
ldc "perfparsed"
invokestatic org.openjdk.jmh.util.FileUtils.weakTempFile:(Ljava/lang/String;)Lorg/openjdk/jmh/util/TempFile;
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
4: goto 7
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.lang.String java.lang.String[]
StackMap stack: java.io.IOException
5: astore 3
start local 3 6: new org.openjdk.jmh.profile.ProfilerException
dup
aload 3
invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/Exception;)V
athrow
end local 3 7: StackMap locals:
StackMap stack:
new joptsimple.OptionParser
dup
invokespecial joptsimple.OptionParser.<init>:()V
astore 3
start local 3 8: aload 3
new org.openjdk.jmh.profile.ProfilerOptionFormatter
dup
ldc "perfasm"
invokespecial org.openjdk.jmh.profile.ProfilerOptionFormatter.<init>:(Ljava/lang/String;)V
invokevirtual joptsimple.OptionParser.formatHelpWith:(Ljoptsimple/HelpFormatter;)V
9: aload 3
ldc "events"
10: ldc "Events to gather."
11: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
12: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc ","
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.withValuesSeparatedBy:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "event"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
aload 2
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:([Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
13: astore 4
start local 4 14: aload 3
ldc "hotThreshold"
15: ldc "Cutoff threshold for hot regions. The regions with event count over threshold would be expanded with detailed disassembly."
16: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
17: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Double;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "rate"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc 0.1
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
iconst_0
anewarray java.lang.Double
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
18: astore 5
start local 5 19: aload 3
ldc "top"
20: ldc "Show this number of top hottest code regions."
21: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
22: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Integer;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "#"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
23: astore 6
start local 6 24: aload 3
ldc "tooBigThreshold"
25: ldc "Cutoff threshold for large region. The region containing more than this number of lines would be truncated."
26: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
27: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Integer;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "lines"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
sipush 1000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
28: astore 7
start local 7 29: aload 3
ldc "printMargin"
30: ldc "Print margin. How many \"context\" lines without counters to show in each region."
31: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
32: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Integer;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "lines"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
33: astore 8
start local 8 34: aload 3
ldc "mergeMargin"
35: ldc "Merge margin. The regions separated by less than the margin are merged."
36: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
37: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Integer;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "lines"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
bipush 32
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
38: astore 9
start local 9 39: aload 3
ldc "delay"
40: ldc "Delay collection for a given time, in milliseconds; -1 to detect automatically."
41: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
42: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Integer;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "ms"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
43: astore 10
start local 10 44: aload 3
ldc "length"
45: ldc "Do the collection for a given time, in milliseconds; -1 to detect automatically."
46: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
47: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Integer;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "ms"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
48: astore 11
start local 11 49: aload 3
ldc "skipAsm"
50: ldc "Skip -XX:+PrintAssembly instrumentation."
51: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
52: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
53: astore 12
start local 12 54: aload 3
ldc "skipInterpreter"
55: ldc "Skip printing out interpreter stubs. This may improve the parser performance at the expense of missing the resolution and disassembly of interpreter regions."
56: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
57: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
58: astore 13
start local 13 59: aload 3
ldc "skipVMStubs"
60: ldc "Skip printing out VM stubs. This may improve the parser performance at the expense of missing the resolution and disassembly of VM stub regions."
61: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
62: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
63: astore 14
start local 14 64: aload 3
ldc "savePerf"
65: ldc "Save parsed perf output to file. Use this for debugging."
66: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
67: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
68: astore 15
start local 15 69: aload 3
ldc "savePerfTo"
70: ldc "Override the parsed perf output log location. This will use the unique file name per test. Use this for debugging."
71: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
72: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "dir"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "."
iconst_0
anewarray java.lang.String
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
73: astore 16
start local 16 74: aload 3
ldc "savePerfToFile"
75: ldc "Override the perf output log filename. Use this for debugging."
76: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
77: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "file"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
78: astore 17
start local 17 79: aload 3
ldc "savePerfBin"
80: ldc "Save binary perf data to file. Use this for debugging."
81: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
82: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
83: astore 18
start local 18 84: aload 3
ldc "savePerfBinTo"
85: ldc "Override the binary perf data location. This will use the unique file name per test. Use this for debugging."
86: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
87: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "dir"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "."
iconst_0
anewarray java.lang.String
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
88: astore 19
start local 19 89: aload 3
ldc "savePerfBinToFile"
90: ldc "Override the perf binary data filename. Use this for debugging."
91: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
92: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "file"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
93: astore 20
start local 20 94: aload 3
ldc "saveLog"
95: ldc "Save annotated Hotspot log to file."
96: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
97: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
98: astore 21
start local 21 99: aload 3
ldc "saveLogTo"
100: ldc "Override the annotated Hotspot log location. This will use the unique file name per test."
101: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
102: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "dir"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "."
iconst_0
anewarray java.lang.String
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
103: astore 22
start local 22 104: aload 3
ldc "saveLogToFile"
105: ldc "Override the annotated Hotspot log filename."
106: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
107: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "file"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
108: astore 23
start local 23 109: aload 3
ldc "printCompilationInfo"
110: ldc "Print the collateral compilation information. Enabling this might corrupt the assembly output, see https://bugs.openjdk.java.net/browse/CODETOOLS-7901102."
111: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
112: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "bool"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
113: astore 24
start local 24 114: aload 3
ldc "intelSyntax"
115: ldc "Should perfasm use intel syntax?"
116: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
117: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "boolean"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
118: astore 25
start local 25 119: aload 3
ldc "drawIntraJumps"
120: ldc "Should perfasm draw jump arrows with the region?"
121: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
122: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "boolean"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
123: astore 26
start local 26 124: aload 3
ldc "drawInterJumps"
125: ldc "Should perfasm draw jump arrows out of the region?"
126: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
127: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Boolean;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "boolean"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Boolean
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
128: astore 27
start local 27 129: aload 0
aload 3
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.addMyOptions:(Ljoptsimple/OptionParser;)V
130: aload 0
aload 1
aload 3
invokestatic org.openjdk.jmh.profile.ProfilerUtils.parseInitLine:(Ljava/lang/String;Ljoptsimple/OptionParser;)Ljoptsimple/OptionSet;
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
131: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 4
invokevirtual joptsimple.OptionSet.valuesOf:(Ljoptsimple/OptionSpec;)Ljava/util/List;
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
132: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 5
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionRateThreshold:D
133: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 6
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
134: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 7
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionTooBigThreshold:I
135: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 8
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printMargin:I
136: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 9
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.mergeMargin:I
137: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 10
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.delayMsec:I
138: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 11
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.lengthMsec:I
139: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 12
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipAssembly:Z
140: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 13
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipInterpreter:Z
141: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 14
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipVMStubs:Z
142: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 15
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutput:Z
143: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 16
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutputTo:Ljava/lang/String;
144: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 17
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutputToFile:Ljava/lang/String;
145: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 18
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBin:Z
146: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 19
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBinTo:Ljava/lang/String;
147: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 20
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBinFile:Ljava/lang/String;
148: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 21
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLog:Z
149: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 22
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLogTo:Ljava/lang/String;
150: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 23
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLogToFile:Ljava/lang/String;
151: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 25
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.intelSyntax:Z
152: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 24
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printCompilationInfo:Z
153: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 27
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.drawIntraJumps:Z
154: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 26
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.drawInterJumps:Z
155: goto 158
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.lang.String java.lang.String[] joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec
StackMap stack: joptsimple.OptionException
156: astore 28
start local 28 157: new org.openjdk.jmh.profile.ProfilerException
dup
aload 28
invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
athrow
end local 28 158: StackMap locals:
StackMap stack:
return
end local 27 end local 26 end local 25 end local 24 end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 159 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 159 1 initLine Ljava/lang/String;
0 159 2 events [Ljava/lang/String;
6 7 3 e Ljava/io/IOException;
8 159 3 parser Ljoptsimple/OptionParser;
14 159 4 optEvents Ljoptsimple/OptionSpec<Ljava/lang/String;>;
19 159 5 optThresholdRate Ljoptsimple/OptionSpec<Ljava/lang/Double;>;
24 159 6 optShowTop Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
29 159 7 optThreshold Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
34 159 8 optPrintMargin Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
39 159 9 optMergeMargin Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
44 159 10 optDelay Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
49 159 11 optLength Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
54 159 12 optSkipAsm Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
59 159 13 optSkipInterpreter Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
64 159 14 optSkipVMStubs Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
69 159 15 optPerfOut Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
74 159 16 optPerfOutTo Ljoptsimple/OptionSpec<Ljava/lang/String;>;
79 159 17 optPerfOutToFile Ljoptsimple/OptionSpec<Ljava/lang/String;>;
84 159 18 optPerfBin Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
89 159 19 optPerfBinTo Ljoptsimple/OptionSpec<Ljava/lang/String;>;
94 159 20 optPerfBinToFile Ljoptsimple/OptionSpec<Ljava/lang/String;>;
99 159 21 optSaveLog Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
104 159 22 optSaveLogTo Ljoptsimple/OptionSpec<Ljava/lang/String;>;
109 159 23 optSaveLogToFile Ljoptsimple/OptionSpec<Ljava/lang/String;>;
114 159 24 optPrintCompilationInfo Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
119 159 25 optIntelSyntax Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
124 159 26 optDrawIntraJumps Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
129 159 27 optDrawInterJumps Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
157 158 28 e Ljoptsimple/OptionException;
Exception table:
from to target type
1 4 5 Class java.io.IOException
131 155 156 Class joptsimple.OptionException
Exceptions:
throws org.openjdk.jmh.profile.ProfilerException
MethodParameters:
Name Flags
initLine
events
protected abstract void addMyOptions(joptsimple.OptionParser);
descriptor: (Ljoptsimple/OptionParser;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
parser
public java.util.Collection<java.lang.String> addJVMOptions(org.openjdk.jmh.infra.BenchmarkParams);
descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipAssembly:Z
ifne 23
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 2
iconst_4
anewarray java.lang.String
dup
iconst_0
3: ldc "-XX:+UnlockDiagnosticVMOptions"
aastore
dup
iconst_1
4: ldc "-XX:+LogCompilation"
aastore
dup
iconst_2
5: new java.lang.StringBuilder
dup
ldc "-XX:LogFile="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.hsLog:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_3
6: ldc "-XX:+PrintAssembly"
aastore
7: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
8: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipInterpreter:Z
ifne 10
9: aload 2
ldc "-XX:+PrintInterpreter"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
10: StackMap locals: java.util.Collection
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipVMStubs:Z
ifne 16
11: aload 2
ldc "-XX:+PrintNMethods"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
12: aload 2
ldc "-XX:+PrintNativeNMethods"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
13: aload 2
ldc "-XX:+PrintSignatureHandlers"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
14: aload 2
ldc "-XX:+PrintAdapterHandlers"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
15: aload 2
ldc "-XX:+PrintStubCode"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printCompilationInfo:Z
ifeq 20
17: aload 2
ldc "-XX:+PrintCompilation"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
18: aload 2
ldc "-XX:+PrintInlining"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
19: aload 2
ldc "-XX:+TraceClassLoading"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
20: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.intelSyntax:Z
ifeq 22
21: aload 2
ldc "-XX:PrintAssemblyOptions=intel"
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
22: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 23: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 24 1 params Lorg/openjdk/jmh/infra/BenchmarkParams;
2 23 2 opts Ljava/util/Collection<Ljava/lang/String;>;
Signature: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection<Ljava/lang/String;>;
MethodParameters:
Name Flags
params
public void beforeTrial(org.openjdk.jmh.infra.BenchmarkParams);
descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 1 1 params Lorg/openjdk/jmh/infra/BenchmarkParams;
MethodParameters:
Name Flags
params
public java.util.Collection<? extends org.openjdk.jmh.results.Result> afterTrial(org.openjdk.jmh.results.BenchmarkResult, long, java.io.File, java.io.File);
descriptor: (Lorg/openjdk/jmh/results/BenchmarkResult;JLjava/io/File;Ljava/io/File;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
aload 1
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.processAssembly:(Lorg/openjdk/jmh/results/BenchmarkResult;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfResult;
astore 6
start local 6 1: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.hsLog:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.delete:()V
2: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.delete:()V
3: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.delete:()V
4: aload 6
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
areturn
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 5 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 5 1 br Lorg/openjdk/jmh/results/BenchmarkResult;
0 5 2 pid J
0 5 4 stdOut Ljava/io/File;
0 5 5 stdErr Ljava/io/File;
1 5 6 result Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfResult;
Signature: (Lorg/openjdk/jmh/results/BenchmarkResult;JLjava/io/File;Ljava/io/File;)Ljava/util/Collection<+Lorg/openjdk/jmh/results/Result;>;
MethodParameters:
Name Flags
br
pid
stdOut
stdErr
public boolean allowPrintOut();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
public boolean allowPrintErr();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
protected abstract void parseEvents();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents readEvents(double, double);
descriptor: (DD)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
skipMs
lenMs
protected abstract java.lang.String perfBinaryExtension();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
private org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResult processAssembly(org.openjdk.jmh.results.BenchmarkResult);
descriptor: (Lorg/openjdk/jmh/results/BenchmarkResult;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=30, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.parseEvents:()V
1: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 2
start local 2 2: new java.io.PrintWriter
dup
aload 2
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 3
start local 3 3: aload 0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.hsLog:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.file:()Ljava/io/File;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.readAssembly:(Ljava/io/File;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;
astore 4
start local 4 4: aload 4
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.size:()I
ifle 7
5: aload 3
ldc "PrintAssembly processed: %d total address lines.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
6: goto 19
StackMap locals: java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly
StackMap stack:
7: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.skipAssembly:Z
ifeq 12
8: aload 3
invokevirtual java.io.PrintWriter.println:()V
9: aload 3
ldc "PrintAssembly skipped, Java methods are not resolved."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
10: aload 3
invokevirtual java.io.PrintWriter.println:()V
11: goto 19
12: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.PrintWriter.println:()V
13: aload 3
ldc "ERROR: No address lines detected in assembly capture. Make sure your JDK is properly configured to"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
14: aload 3
ldc "print generated assembly. The most probable cause for this failure is that hsdis is not available,"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
15: aload 3
ldc "or resides at the wrong path within the JDK. Try to run the same JDK with -XX:+PrintAssembly with"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
16: aload 3
ldc "a simple non-JMH program and look for warning messages. For details, see the link below:"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
17: aload 3
ldc " https://wiki.openjdk.java.net/display/HotSpot/PrintAssembly"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
18: aload 3
invokevirtual java.io.PrintWriter.println:()V
19: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.delayMsec:I
iconst_m1
if_icmpne 22
20: aload 1
invokestatic org.openjdk.jmh.profile.ProfilerUtils.measurementDelayMs:(Lorg/openjdk/jmh/results/BenchmarkResult;)J
lstore 5
start local 5 21: goto 23
end local 5 22: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.delayMsec:I
i2l
lstore 5
start local 5 23: StackMap locals: long
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.lengthMsec:I
iconst_m1
if_icmpne 26
24: aload 1
invokestatic org.openjdk.jmh.profile.ProfilerUtils.measuredTimeMs:(Lorg/openjdk/jmh/results/BenchmarkResult;)J
l2d
dstore 7
start local 7 25: goto 27
end local 7 26: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.lengthMsec:I
i2d
dstore 7
start local 7 27: StackMap locals: double
StackMap stack:
aload 0
lload 5
l2d
dload 7
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.readEvents:(DD)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
astore 9
start local 9 28: aload 9
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.isEmpty:()Z
ifne 38
29: aload 3
ldc "Perf output processed (skipped %.3f seconds):%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 5
l2d
ldc 1000.0
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
30: iconst_1
istore 10
start local 10 31: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 35
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents int top java.util.Iterator
StackMap stack:
32: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 33: aload 3
ldc " Column %d: %s (%d events)%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 11
aastore
dup
iconst_2
aload 9
aload 11
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.get:(Ljava/lang/String;)Lorg/openjdk/jmh/util/Multiset;
invokeinterface org.openjdk.jmh.util.Multiset.size:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
34: iinc 10 1
end local 11 35: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
36: aload 3
invokevirtual java.io.PrintWriter.println:()V
end local 10 37: goto 41
38: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
StackMap stack:
aload 3
invokevirtual java.io.PrintWriter.println:()V
39: aload 3
ldc "ERROR: No perf data, make sure \"perf stat echo 1\" is indeed working;\n or the collection delay is not running past the benchmark time."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
40: aload 3
invokevirtual java.io.PrintWriter.println:()V
41: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 9
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.makeRegions:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;)Ljava/util/List;
astore 10
start local 10 42: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 43: aload 10
new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$1
dup
aload 0
aload 9
aload 11
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$1.<init>:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
44: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionRateThreshold:D
aload 9
aload 11
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.getTotalEvents:(Ljava/lang/String;)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
l2d
dmul
d2l
lstore 12
start local 12 45: iconst_0
istore 14
start local 14 46: iconst_1
istore 15
start local 15 47: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 17
goto 64
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int top java.util.Iterator
StackMap stack:
48: aload 17
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region
astore 16
start local 16 49: aload 16
aload 9
aload 11
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.getEventCount:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)J
lload 12
lcmp
ifle 64
50: iload 14
ifne 53
51: aload 3
ldc "Hottest code regions (>%.2f%% \"%s\" events):%n%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionRateThreshold:D
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_1
aload 11
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
52: iconst_1
istore 14
53: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator
StackMap stack:
aload 0
aload 3
new java.lang.StringBuilder
dup
ldc "Hottest Region "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;Ljava/lang/String;)V
54: aload 3
ldc "%s, %s (%d bytes) %n%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 16
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.source:()Ljava/lang/String;
aastore
dup
iconst_1
aload 16
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.name:()Ljava/lang/String;
aastore
dup
iconst_2
aload 16
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.end:J
aload 16
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.begin:J
lsub
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
55: aload 16
aload 3
aload 9
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.printCode:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;)V
56: aload 0
aload 3
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;)V
57: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 19
goto 60
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator top java.util.Iterator
StackMap stack:
58: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 18
start local 18 59: aload 3
aload 9
aload 18
aload 16
aload 9
aload 18
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.getEventCount:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 18 60: StackMap locals:
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 58
61: aload 3
new java.lang.StringBuilder
dup
ldc "<total for region "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
62: aload 3
invokevirtual java.io.PrintWriter.println:()V
63: iinc 15 1
end local 16 64: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int top java.util.Iterator
StackMap stack:
aload 17
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
65: iload 14
ifne 69
66: aload 3
ldc "WARNING: No hottest code region above the threshold (%.2f%%) for disassembly.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionRateThreshold:D
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
67: aload 3
ldc "Use \"hotThreshold\" profiler option to lower the filter threshold."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
68: aload 3
invokevirtual java.io.PrintWriter.println:()V
69: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int
StackMap stack:
iconst_0
istore 16
start local 16 70: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 18
goto 73
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int top java.util.Iterator
StackMap stack:
71: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region
astore 17
start local 17 72: iload 16
aload 17
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.source:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Math.max:(II)I
istore 16
end local 17 73: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 71
74: new org.openjdk.jmh.util.HashMultiset
dup
invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
astore 17
start local 17 75: new org.openjdk.jmh.util.HashMultiset
dup
invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
astore 18
start local 18 76: aload 0
aload 3
ldc "Hottest Regions"
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;Ljava/lang/String;)V
77: iconst_0
istore 19
start local 19 78: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 21
goto 95
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int top java.util.Iterator
StackMap stack:
79: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region
astore 20
start local 20 80: iload 19
iinc 19 1
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
if_icmpge 87
81: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 23
goto 84
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator top java.util.Iterator
StackMap stack:
82: aload 23
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 22
start local 22 83: aload 3
aload 9
aload 22
aload 20
aload 9
aload 22
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.getEventCount:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 22 84: StackMap locals:
StackMap stack:
aload 23
invokeinterface java.util.Iterator.hasNext:()Z
ifne 82
85: aload 3
new java.lang.StringBuilder
dup
ldc "%"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 16
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s %s (%d bytes) %n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 20
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.source:()Ljava/lang/String;
aastore
dup
iconst_1
aload 20
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.name:()Ljava/lang/String;
aastore
dup
iconst_2
aload 20
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.end:J
aload 20
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.begin:J
lsub
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
86: goto 91
87: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 23
goto 90
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator top java.util.Iterator
StackMap stack:
88: aload 23
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 22
start local 22 89: aload 18
aload 22
aload 20
aload 9
aload 22
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.getEventCount:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)J
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
end local 22 90: StackMap locals:
StackMap stack:
aload 23
invokeinterface java.util.Iterator.hasNext:()Z
ifne 88
91: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 23
goto 94
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator top java.util.Iterator
StackMap stack:
92: aload 23
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 22
start local 22 93: aload 17
aload 22
aload 20
aload 9
aload 22
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.getEventCount:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)J
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
end local 22 94: StackMap locals:
StackMap stack:
aload 23
invokeinterface java.util.Iterator.hasNext:()Z
ifne 92
end local 20 95: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int top java.util.Iterator
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 79
96: aload 10
invokeinterface java.util.List.size:()I
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
isub
ifle 102
97: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 21
goto 100
StackMap locals:
StackMap stack:
98: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 20
start local 20 99: aload 3
aload 9
aload 20
aload 18
aload 20
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 20 100: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 98
101: aload 3
new java.lang.StringBuilder
dup
ldc "<...other "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokeinterface java.util.List.size:()I
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " warm regions...>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
102: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int
StackMap stack:
aload 0
aload 3
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;)V
103: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 21
goto 106
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int top java.util.Iterator
StackMap stack:
104: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 20
start local 20 105: aload 3
aload 9
aload 20
aload 17
aload 20
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 20 106: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 104
107: aload 3
ldc "<totals>"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
108: aload 3
invokevirtual java.io.PrintWriter.println:()V
end local 19 end local 18 end local 17 109: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 17
start local 17 110: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 18
start local 18 111: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 20
goto 115
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
112: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 19
start local 19 113: aload 17
aload 19
new org.openjdk.jmh.util.HashMultiset
dup
invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
114: aload 18
aload 19
new org.openjdk.jmh.util.HashMultiset
dup
invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 115: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 112
116: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 20
goto 124
StackMap locals:
StackMap stack:
117: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region
astore 19
start local 19 118: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 22
goto 123
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region java.util.Iterator top java.util.Iterator
StackMap stack:
119: aload 22
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 21
start local 21 120: aload 19
aload 9
aload 21
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.getEventCount:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;)J
lstore 23
start local 23 121: aload 18
aload 21
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
aload 19
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
lload 23
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
122: aload 17
aload 21
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
aload 19
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region.desc:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.source:()Ljava/lang/String;
lload 23
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
end local 23 end local 21 123: StackMap locals:
StackMap stack:
aload 22
invokeinterface java.util.Iterator.hasNext:()Z
ifne 119
end local 19 124: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 117
125: aload 0
aload 3
ldc "Hottest Methods (after inlining)"
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;Ljava/lang/String;)V
126: new org.openjdk.jmh.util.HashMultiset
dup
invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
astore 19
start local 19 127: new org.openjdk.jmh.util.HashMultiset
dup
invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
astore 20
start local 20 128: iconst_0
istore 21
start local 21 129: aload 18
aload 11
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
invokestatic org.openjdk.jmh.util.Multisets.sortedDesc:(Lorg/openjdk/jmh/util/Multiset;)Ljava/util/List;
astore 22
start local 22 130: aload 22
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 24
goto 147
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List top java.util.Iterator
StackMap stack:
131: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
astore 23
start local 23 132: iload 21
iinc 21 1
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
if_icmpge 139
133: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 26
goto 136
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc java.util.Iterator top java.util.Iterator
StackMap stack:
134: aload 26
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 25
start local 25 135: aload 3
aload 9
aload 25
aload 18
aload 25
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
aload 23
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 25 136: StackMap locals:
StackMap stack:
aload 26
invokeinterface java.util.Iterator.hasNext:()Z
ifne 134
137: aload 3
new java.lang.StringBuilder
dup
ldc "%"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 16
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s %s %n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 23
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.source:()Ljava/lang/String;
aastore
dup
iconst_1
aload 23
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.name:()Ljava/lang/String;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
138: goto 143
139: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc java.util.Iterator
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 26
goto 142
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc java.util.Iterator top java.util.Iterator
StackMap stack:
140: aload 26
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 25
start local 25 141: aload 20
aload 25
aload 18
aload 25
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
aload 23
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
end local 25 142: StackMap locals:
StackMap stack:
aload 26
invokeinterface java.util.Iterator.hasNext:()Z
ifne 140
143: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc java.util.Iterator
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 26
goto 146
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc java.util.Iterator top java.util.Iterator
StackMap stack:
144: aload 26
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 25
start local 25 145: aload 19
aload 25
aload 18
aload 25
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
aload 23
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
end local 25 146: StackMap locals:
StackMap stack:
aload 26
invokeinterface java.util.Iterator.hasNext:()Z
ifne 144
end local 23 147: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List top java.util.Iterator
StackMap stack:
aload 24
invokeinterface java.util.Iterator.hasNext:()Z
ifne 131
148: aload 22
invokeinterface java.util.List.size:()I
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
isub
ifle 154
149: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 24
goto 152
StackMap locals:
StackMap stack:
150: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 23
start local 23 151: aload 3
aload 9
aload 23
aload 20
aload 23
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 23 152: StackMap locals:
StackMap stack:
aload 24
invokeinterface java.util.Iterator.hasNext:()Z
ifne 150
153: aload 3
new java.lang.StringBuilder
dup
ldc "<...other "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 22
invokeinterface java.util.List.size:()I
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionShowTop:I
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " warm methods...>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
154: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List
StackMap stack:
aload 0
aload 3
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;)V
155: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 24
goto 158
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map org.openjdk.jmh.util.Multiset org.openjdk.jmh.util.Multiset int java.util.List top java.util.Iterator
StackMap stack:
156: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 23
start local 23 157: aload 3
aload 9
aload 23
aload 19
aload 23
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 23 158: StackMap locals:
StackMap stack:
aload 24
invokeinterface java.util.Iterator.hasNext:()Z
ifne 156
159: aload 3
ldc "<totals>"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
160: aload 3
invokevirtual java.io.PrintWriter.println:()V
end local 22 end local 21 end local 20 end local 19 161: aload 0
aload 3
ldc "Distribution by Source"
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;Ljava/lang/String;)V
162: aload 17
aload 11
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
invokestatic org.openjdk.jmh.util.Multisets.sortedDesc:(Lorg/openjdk/jmh/util/Multiset;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 20
goto 169
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
163: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 19
start local 19 164: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 22
goto 167
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.util.Iterator top java.util.Iterator
StackMap stack:
165: aload 22
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 21
start local 21 166: aload 3
aload 9
aload 21
aload 17
aload 21
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
aload 19
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 21 167: StackMap locals:
StackMap stack:
aload 22
invokeinterface java.util.Iterator.hasNext:()Z
ifne 165
168: aload 3
new java.lang.StringBuilder
dup
ldc "%"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 16
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s%n"
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
aload 19
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
end local 19 169: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 163
170: aload 0
aload 3
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;)V
171: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 20
goto 174
StackMap locals:
StackMap stack:
172: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 19
start local 19 173: aload 3
aload 9
aload 19
aload 17
aload 19
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
invokeinterface org.openjdk.jmh.util.Multiset.size:()J
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 19 174: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 172
175: aload 3
ldc "<totals>"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
176: aload 3
invokevirtual java.io.PrintWriter.println:()V
177: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 19
start local 19 178: aload 4
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.addressMap:Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 21
goto 182
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.util.Set top java.util.Iterator
StackMap stack:
179: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
astore 20
start local 20 180: aload 19
aload 20
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifne 182
181: aload 3
ldc "WARNING: Duplicate instruction addresses detected. This is probably due to compiler reusing\n the code arena for the new generated code. We can not differentiate between methods sharing\nthe same addresses, and therefore the profile might be wrong. Increasing generated code\nstorage might help."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 20 182: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 179
end local 19 183: iconst_0
istore 19
start local 19 184: aload 9
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.totalCounts:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 21
goto 187
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map int top java.util.Iterator
StackMap stack:
185: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
astore 20
start local 20 186: iload 19
i2l
aload 20
invokevirtual java.lang.Long.longValue:()J
ladd
l2i
istore 19
end local 20 187: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 185
188: iload 19
sipush 1000
if_icmpge 193
189: aload 3
new java.lang.StringBuilder
dup
ldc "WARNING: The perf event count is suspiciously low ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 19
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "). The performance data might be"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
190: aload 3
ldc "inaccurate or misleading. Try to do the profiling again, or tune up the sampling frequency."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
191: aload 3
ldc "With some profilers on Mac OS X, System Integrity Protection (SIP) may prevent profiling."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
192: aload 3
ldc "In such case, temporarily disabling SIP with 'csrutil disable' might help."
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 19 193: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutput:Z
ifeq 203
194: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutputToFile:Ljava/lang/String;
ifnonnull 196
195: new java.lang.StringBuilder
dup
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutputTo:Ljava/lang/String;
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 1
invokevirtual org.openjdk.jmh.results.BenchmarkResult.getParams:()Lorg/openjdk/jmh/infra/BenchmarkParams;
invokevirtual org.openjdk.jmh.infra.BenchmarkParams.id:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".perf"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 197
196: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfOutputToFile:Ljava/lang/String;
197: StackMap locals:
StackMap stack: java.lang.String
astore 19
start local 19 198: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
aload 19
invokestatic org.openjdk.jmh.util.FileUtils.copy:(Ljava/lang/String;Ljava/lang/String;)V
199: aload 3
new java.lang.StringBuilder
dup
ldc "Perf output saved to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
200: goto 203
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String
StackMap stack: java.io.IOException
201: pop
202: aload 3
new java.lang.StringBuilder
dup
ldc "Unable to save perf output to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 19 203: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBin:Z
ifeq 213
204: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBinFile:Ljava/lang/String;
ifnonnull 206
205: new java.lang.StringBuilder
dup
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBinTo:Ljava/lang/String;
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 1
invokevirtual org.openjdk.jmh.results.BenchmarkResult.getParams:()Lorg/openjdk/jmh/infra/BenchmarkParams;
invokevirtual org.openjdk.jmh.infra.BenchmarkParams.id:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfBinaryExtension:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 207
206: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.savePerfBinFile:Ljava/lang/String;
207: StackMap locals:
StackMap stack: java.lang.String
astore 19
start local 19 208: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
aload 19
invokestatic org.openjdk.jmh.util.FileUtils.copy:(Ljava/lang/String;Ljava/lang/String;)V
209: aload 3
new java.lang.StringBuilder
dup
ldc "Perf binary output saved to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
210: goto 213
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String
StackMap stack: java.io.IOException
211: pop
212: aload 3
new java.lang.StringBuilder
dup
ldc "Unable to save perf binary output to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 19 213: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLog:Z
ifeq 246
214: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLogToFile:Ljava/lang/String;
ifnonnull 216
215: new java.lang.StringBuilder
dup
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLogTo:Ljava/lang/String;
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 1
invokevirtual org.openjdk.jmh.results.BenchmarkResult.getParams:()Lorg/openjdk/jmh/infra/BenchmarkParams;
invokevirtual org.openjdk.jmh.infra.BenchmarkParams.id:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".log"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 217
216: StackMap locals:
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.saveLogToFile:Ljava/lang/String;
217: StackMap locals:
StackMap stack: java.lang.String
astore 19
start local 19 218: aconst_null
astore 20
aconst_null
astore 21
219: new java.io.FileOutputStream
dup
aload 19
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
astore 22
start local 22 220: new java.io.PrintWriter
dup
aload 22
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
astore 23
start local 23 221: aload 4
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.lines:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 25
goto 231
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.PrintWriter top java.util.Iterator
StackMap stack:
222: aload 25
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine
astore 24
start local 24 223: aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 27
goto 229
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.Iterator top java.util.Iterator
StackMap stack:
224: aload 27
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 26
start local 26 225: aload 24
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine.addr:Ljava/lang/Long;
ifnull 226
aload 9
aload 26
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.get:(Ljava/lang/String;)Lorg/openjdk/jmh/util/Multiset;
aload 24
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine.addr:Ljava/lang/Long;
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
goto 227
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.Iterator java.lang.String java.util.Iterator
StackMap stack:
226: lconst_0
StackMap locals:
StackMap stack: long
227: lstore 28
start local 28 228: aload 23
aload 9
aload 26
lload 28
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printLine:(Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
end local 28 end local 26 229: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.Iterator top java.util.Iterator
StackMap stack:
aload 27
invokeinterface java.util.Iterator.hasNext:()Z
ifne 224
230: aload 23
aload 24
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine.code:Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 24 231: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.PrintWriter top java.util.Iterator
StackMap stack:
aload 25
invokeinterface java.util.Iterator.hasNext:()Z
ifne 222
232: aload 3
new java.lang.StringBuilder
dup
ldc "Perf-annotated Hotspot log is saved to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
233: aload 23
ifnull 236
aload 23
invokevirtual java.io.PrintWriter.close:()V
goto 236
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.PrintWriter
StackMap stack: java.lang.Throwable
234: astore 20
aload 23
ifnull 235
aload 23
invokevirtual java.io.PrintWriter.close:()V
end local 23 StackMap locals:
StackMap stack:
235: aload 20
athrow
StackMap locals:
StackMap stack:
236: aload 22
ifnull 246
aload 22
invokevirtual java.io.FileOutputStream.close:()V
goto 246
StackMap locals:
StackMap stack: java.lang.Throwable
237: astore 21
aload 20
ifnonnull 238
aload 21
astore 20
goto 239
StackMap locals:
StackMap stack:
238: aload 20
aload 21
if_acmpeq 239
aload 20
aload 21
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
239: aload 22
ifnull 240
aload 22
invokevirtual java.io.FileOutputStream.close:()V
end local 22 StackMap locals:
StackMap stack:
240: aload 20
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
241: astore 21
aload 20
ifnonnull 242
aload 21
astore 20
goto 243
StackMap locals:
StackMap stack:
242: aload 20
aload 21
if_acmpeq 243
aload 20
aload 21
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
243: aload 20
athrow
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.results.BenchmarkResult java.io.StringWriter java.io.PrintWriter org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly long double org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.lang.String long int int int java.util.Map java.util.Map java.lang.String
StackMap stack: java.io.IOException
244: pop
245: aload 3
new java.lang.StringBuilder
dup
ldc "Unable to save Hotspot log to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 19 246: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.PrintWriter.flush:()V
247: aload 3
invokevirtual java.io.PrintWriter.close:()V
248: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResult
dup
aload 2
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResult.<init>:(Ljava/lang/String;)V
areturn
end local 18 end local 17 end local 16 end local 15 end local 14 end local 12 end local 11 end local 10 end local 9 end local 7 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 249 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 249 1 br Lorg/openjdk/jmh/results/BenchmarkResult;
2 249 2 sw Ljava/io/StringWriter;
3 249 3 pw Ljava/io/PrintWriter;
4 249 4 assembly Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;
21 22 5 skipMs J
23 249 5 skipMs J
25 26 7 lenMs D
27 249 7 lenMs D
28 249 9 events Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
31 37 10 cnt I
33 35 11 event Ljava/lang/String;
42 249 10 regions Ljava/util/List<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;>;
43 249 11 mainEvent Ljava/lang/String;
45 249 12 threshold J
46 249 14 headerPrinted Z
47 249 15 cnt I
49 64 16 r Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;
59 60 18 event Ljava/lang/String;
70 249 16 lenSource I
72 73 17 r Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;
75 109 17 total Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
76 109 18 other Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
78 109 19 shown I
80 95 20 r Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;
83 84 22 event Ljava/lang/String;
89 90 22 event Ljava/lang/String;
93 94 22 event Ljava/lang/String;
99 100 20 event Ljava/lang/String;
105 106 20 event Ljava/lang/String;
110 249 17 methodsByType Ljava/util/Map<Ljava/lang/String;Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;>;
111 249 18 methods Ljava/util/Map<Ljava/lang/String;Lorg/openjdk/jmh/util/Multiset<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;>;
113 115 19 event Ljava/lang/String;
118 124 19 r Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;
120 123 21 event Ljava/lang/String;
121 123 23 count J
127 161 19 total Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
128 161 20 other Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
129 161 21 shownMethods I
130 161 22 top Ljava/util/List<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
132 147 23 m Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
135 136 25 event Ljava/lang/String;
141 142 25 event Ljava/lang/String;
145 146 25 event Ljava/lang/String;
151 152 23 event Ljava/lang/String;
157 158 23 event Ljava/lang/String;
164 169 19 m Ljava/lang/String;
166 167 21 event Ljava/lang/String;
173 174 19 event Ljava/lang/String;
178 183 19 addrHistory Ljava/util/Set<Ljava/lang/Long;>;
180 182 20 addr Ljava/lang/Long;
184 193 19 sum I
186 187 20 v Ljava/lang/Long;
198 203 19 target Ljava/lang/String;
208 213 19 target Ljava/lang/String;
218 246 19 target Ljava/lang/String;
220 240 22 asm Ljava/io/FileOutputStream;
221 235 23 pwAsm Ljava/io/PrintWriter;
223 231 24 line Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$ASMLine;
225 229 26 event Ljava/lang/String;
228 229 28 count J
Exception table:
from to target type
198 200 201 Class java.io.IOException
208 210 211 Class java.io.IOException
221 233 234 any
220 236 237 any
219 241 241 any
218 244 244 Class java.io.IOException
MethodParameters:
Name Flags
br
private static void printLine(java.io.PrintWriter, org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents, java.lang.String, long);
descriptor: (Ljava/io/PrintWriter;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;Ljava/lang/String;J)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: lload 3
lconst_0
lcmp
ifle 3
1: aload 0
ldc "%6.2f%% "
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc 100.0
lload 3
l2d
dmul
aload 1
aload 2
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.getTotalEvents:(Ljava/lang/String;)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
l2d
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
ldc "%9s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc ""
aastore
invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
pop
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 pw Ljava/io/PrintWriter;
0 5 1 events Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
0 5 2 event Ljava/lang/String;
0 5 3 count J
MethodParameters:
Name Flags
pw
events
event
count
private void printDottedLine(java.io.PrintWriter);
descriptor: (Ljava/io/PrintWriter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printDottedLine:(Ljava/io/PrintWriter;Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 2 1 pw Ljava/io/PrintWriter;
MethodParameters:
Name Flags
pw
private void printDottedLine(java.io.PrintWriter, java.lang.String);
descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "...."
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
1: aload 2
ifnull 5
2: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
3: aload 1
aload 2
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
4: goto 6
5: StackMap locals:
StackMap stack:
ldc ""
astore 2
6: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 7: goto 10
8: StackMap locals: int
StackMap stack:
aload 1
ldc "."
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
bipush 96
aload 2
invokevirtual java.lang.String.length:()I
isub
if_icmplt 8
end local 3 11: aload 1
invokevirtual java.io.PrintWriter.println:()V
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 13 1 pw Ljava/io/PrintWriter;
0 13 2 header Ljava/lang/String;
7 11 3 c I
MethodParameters:
Name Flags
pw
header
private java.util.List<org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region> makeRegions(org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly, org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents);
descriptor: (Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=15, locals=10, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 2
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.getAllAddresses:()Ljava/util/SortedSet;
astore 4
start local 4 2: aload 0
aload 4
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.figureHotIntervals:(Ljava/util/SortedSet;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 18
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.util.SortedSet top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Interval
astore 5
start local 5 4: aload 4
aload 5
getfield org.openjdk.jmh.util.Interval.src:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 5
getfield org.openjdk.jmh.util.Interval.dst:J
lconst_1
ladd
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.SortedSet.subSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedSet;
astore 7
start local 7 5: aload 1
aload 5
getfield org.openjdk.jmh.util.Interval.src:J
aload 5
getfield org.openjdk.jmh.util.Interval.dst:J
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.printMargin:I
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.getLines:(JJI)Ljava/util/List;
astore 8
start local 8 6: aload 8
invokeinterface java.util.List.isEmpty:()Z
ifne 14
7: aload 1
aload 5
getfield org.openjdk.jmh.util.Interval.src:J
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.getMethod:(J)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
astore 9
start local 9 8: aload 9
ifnonnull 10
9: invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.unknown:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
astore 9
10: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.util.SortedSet org.openjdk.jmh.util.Interval java.util.Iterator java.util.SortedSet java.util.List org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
StackMap stack:
aload 3
new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$GeneratedRegion
dup
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.events:Ljava/util/List;
aload 1
aload 9
aload 5
getfield org.openjdk.jmh.util.Interval.src:J
aload 5
getfield org.openjdk.jmh.util.Interval.dst:J
11: aload 8
aload 7
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.regionTooBigThreshold:I
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.drawIntraJumps:Z
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.drawInterJumps:Z
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$GeneratedRegion.<init>:(Ljava/util/Collection;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;JJLjava/util/Collection;Ljava/util/Set;IZZ)V
12: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 13: goto 18
14: StackMap locals:
StackMap stack:
aload 2
aload 5
getfield org.openjdk.jmh.util.Interval.src:J
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.getMethod:(J)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
astore 9
start local 9 15: aload 9
ifnonnull 17
16: invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.unknown:()Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
astore 9
17: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
StackMap stack:
aload 3
new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$NativeRegion
dup
aload 9
aload 5
getfield org.openjdk.jmh.util.Interval.src:J
aload 5
getfield org.openjdk.jmh.util.Interval.dst:J
aload 7
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$NativeRegion.<init>:(Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;JJLjava/util/Set;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 5 18: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents java.util.List java.util.SortedSet top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
19: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 20 1 asms Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;
0 20 2 events Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
1 20 3 regions Ljava/util/List<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;>;
2 20 4 allAddrs Ljava/util/SortedSet<Ljava/lang/Long;>;
4 18 5 intv Lorg/openjdk/jmh/util/Interval;
5 18 7 eventfulAddrs Ljava/util/SortedSet<Ljava/lang/Long;>;
6 18 8 regionLines Ljava/util/List<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$ASMLine;>;
8 13 9 desc Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
15 18 9 desc Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
Signature: (Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;)Ljava/util/List<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Region;>;
MethodParameters:
Name Flags
asms
events
private java.util.List<org.openjdk.jmh.util.Interval> figureHotIntervals(java.util.SortedSet<java.lang.Long>);
descriptor: (Ljava/util/SortedSet;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.SortedSet.isEmpty:()Z
ifeq 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: aload 1
invokeinterface java.util.SortedSet.first:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 3
start local 3 4: aload 1
invokeinterface java.util.SortedSet.first:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 5
start local 5 5: aload 1
invokeinterface java.util.SortedSet.iterator:()Ljava/util/Iterator;
astore 9
goto 11
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.util.SortedSet java.util.List long long top top java.util.Iterator
StackMap stack:
6: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 7
start local 7 7: lload 7
lload 5
lsub
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.mergeMargin:I
i2l
lcmp
ifle 10
8: aload 2
new org.openjdk.jmh.util.Interval
dup
lload 3
lload 5
invokespecial org.openjdk.jmh.util.Interval.<init>:(JJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: lload 7
lstore 3
10: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.util.SortedSet java.util.List long long long java.util.Iterator
StackMap stack:
lload 7
lstore 5
end local 7 11: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.util.SortedSet java.util.List long long top top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
12: lload 3
lload 5
lcmp
ifeq 14
13: aload 2
new org.openjdk.jmh.util.Interval
dup
lload 3
lload 5
invokespecial org.openjdk.jmh.util.Interval.<init>:(JJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.util.SortedSet java.util.List long long
StackMap stack:
aload 2
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 15 1 addrs Ljava/util/SortedSet<Ljava/lang/Long;>;
3 15 2 intervals Ljava/util/List<Lorg/openjdk/jmh/util/Interval;>;
4 15 3 begAddr J
5 15 5 lastAddr J
7 11 7 addr J
Signature: (Ljava/util/SortedSet<Ljava/lang/Long;>;)Ljava/util/List<Lorg/openjdk/jmh/util/Interval;>;
MethodParameters:
Name Flags
addrs
private java.util.Collection<java.util.Collection<java.lang.String>> splitAssembly(java.io.File);
descriptor: (Ljava/io/File;)Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new java.io.FileReader
dup
aload 1
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
astore 4
start local 4 2: new java.io.BufferedReader
dup
aload 4
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 5
start local 5 3: new org.openjdk.jmh.util.HashMultimap
dup
invokespecial org.openjdk.jmh.util.HashMultimap.<init>:()V
astore 6
start local 6 4: ldc -1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 7
start local 7 5: ldc "(.*)<writer thread='(.*)'>(.*)"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
astore 8
start local 8 6: goto 15
start local 9 7: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Multimap java.lang.Long java.util.regex.Pattern java.lang.String
StackMap stack:
aload 9
ldc "<writer thread="
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 14
8: aload 8
aload 9
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 10
start local 10 9: aload 10
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 15
10: aload 10
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
astore 7
11: goto 15
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Multimap java.lang.Long java.util.regex.Pattern java.lang.String java.util.regex.Matcher
StackMap stack: java.lang.NumberFormatException
12: pop
13: goto 15
end local 10 14: StackMap locals:
StackMap stack:
aload 6
aload 7
aload 9
invokeinterface org.openjdk.jmh.util.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 9 15: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 9
start local 9 16: ifnonnull 7
17: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 10
start local 10 18: aload 6
invokeinterface org.openjdk.jmh.util.Multimap.keys:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 13
goto 21
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Multimap java.lang.Long java.util.regex.Pattern java.lang.String java.util.Collection top top java.util.Iterator
StackMap stack:
19: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 11
start local 11 20: aload 10
aload 6
lload 11
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.openjdk.jmh.util.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 11 21: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: aload 10
23: aload 5
ifnull 24
aload 5
invokevirtual java.io.BufferedReader.close:()V
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Multimap java.lang.Long java.util.regex.Pattern java.lang.String java.util.Collection
StackMap stack: java.util.Collection
24: aload 4
ifnull 25
aload 4
invokevirtual java.io.FileReader.close:()V
25: StackMap locals:
StackMap stack: java.util.Collection
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
StackMap stack: java.lang.Throwable
26: astore 2
27: aload 5
ifnull 28
aload 5
invokevirtual java.io.BufferedReader.close:()V
end local 5 StackMap locals:
StackMap stack:
28: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 3
aload 2
ifnonnull 30
aload 3
astore 2
goto 31
StackMap locals:
StackMap stack:
30: aload 2
aload 3
if_acmpeq 31
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 4
ifnull 32
aload 4
invokevirtual java.io.FileReader.close:()V
end local 4 StackMap locals:
StackMap stack:
32: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 3
aload 2
ifnonnull 34
aload 3
astore 2
goto 35
StackMap locals:
StackMap stack:
34: aload 2
aload 3
if_acmpeq 35
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
35: aload 2
athrow
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File
StackMap stack: java.io.IOException
36: pop
37: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 38 1 stdOut Ljava/io/File;
2 32 4 in Ljava/io/FileReader;
3 28 5 br Ljava/io/BufferedReader;
4 26 6 writerToLines Lorg/openjdk/jmh/util/Multimap<Ljava/lang/Long;Ljava/lang/String;>;
5 26 7 writerId Ljava/lang/Long;
6 26 8 pWriterThread Ljava/util/regex/Pattern;
7 15 9 line Ljava/lang/String;
16 26 9 line Ljava/lang/String;
9 14 10 m Ljava/util/regex/Matcher;
18 26 10 r Ljava/util/Collection<Ljava/util/Collection<Ljava/lang/String;>;>;
20 21 11 id J
Exception table:
from to target type
10 11 12 Class java.lang.NumberFormatException
3 23 26 any
2 24 29 any
26 29 29 any
1 25 33 any
26 33 33 any
0 25 36 Class java.io.IOException
26 36 36 Class java.io.IOException
Signature: (Ljava/io/File;)Ljava/util/Collection<Ljava/util/Collection<Ljava/lang/String;>;>;
MethodParameters:
Name Flags
stdOut
private org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly readAssembly(java.io.File);
descriptor: (Ljava/io/File;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$Assembly;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=24, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 3
start local 3 2: new org.openjdk.jmh.util.IntervalMap
dup
invokespecial org.openjdk.jmh.util.IntervalMap.<init>:()V
astore 4
start local 4 3: new org.openjdk.jmh.util.IntervalMap
dup
invokespecial org.openjdk.jmh.util.IntervalMap.<init>:()V
astore 5
start local 5 4: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 5: aload 0
aload 1
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.splitAssembly:(Ljava/io/File;)Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 66
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set top java.util.Iterator
StackMap stack:
6: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Collection
astore 7
start local 7 7: ldc ""
astore 9
start local 9 8: aload 7
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 11
goto 65
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String top java.util.Iterator
StackMap stack:
9: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 10: aload 10
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 12
start local 12 11: aload 12
invokevirtual java.lang.String.isEmpty:()Z
ifeq 12
goto 65
12: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String
StackMap stack:
aload 12
ldc " "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 13
start local 13 13: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine
dup
aload 10
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine.<init>:(Ljava/lang/String;)V
astore 14
start local 14 14: aload 12
ldc "0x"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 31
15: aload 0
aload 13
iconst_0
aaload
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.parseAddress:(Ljava/lang/String;)Ljava/lang/Long;
astore 15
start local 15 16: aload 2
invokeinterface java.util.List.size:()I
istore 16
start local 16 17: aload 3
aload 15
iload 16
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine
dup
aload 15
aload 10
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine.<init>:(Ljava/lang/Long;Ljava/lang/String;)V
astore 14
19: aload 13
arraylength
iconst_1
if_icmple 31
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.drawInterJumps:Z
ifne 20
aload 0
getfield org.openjdk.jmh.profile.AbstractPerfAsmProfiler.drawIntraJumps:Z
ifeq 31
20: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.lang.Long int
StackMap stack:
iconst_1
istore 17
start local 17 21: goto 28
22: StackMap locals: int
StackMap stack:
aload 13
iload 17
aaload
ldc "0x"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 27
23: aload 0
aload 13
iload 17
aaload
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.parseAddress:(Ljava/lang/String;)Ljava/lang/Long;
astore 18
start local 18 24: aload 6
new org.openjdk.jmh.util.Interval
dup
aload 15
invokevirtual java.lang.Long.longValue:()J
aload 18
invokevirtual java.lang.Long.longValue:()J
invokespecial org.openjdk.jmh.util.Interval.<init>:(JJ)V
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 18 25: goto 27
StackMap locals:
StackMap stack: java.lang.NumberFormatException
26: pop
27: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
28: iload 17
aload 13
arraylength
if_icmplt 22
end local 17 end local 16 end local 15 29: goto 31
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine
StackMap stack: java.lang.NumberFormatException
30: pop
31: StackMap locals:
StackMap stack:
aload 9
ldc "--------"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 32
aload 10
ldc "StubRoutines::"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 41
32: StackMap locals:
StackMap stack:
ldc "(.+)( +)\\[(.+), (.+)[\\]\\[](.*)"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
astore 15
start local 15 33: aload 15
aload 10
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 16
start local 16 34: aload 16
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 41
35: aload 0
aload 16
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.parseAddress:(Ljava/lang/String;)Ljava/lang/Long;
astore 17
start local 17 36: aload 0
aload 16
iconst_4
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.parseAddress:(Ljava/lang/String;)Ljava/lang/Long;
astore 18
start local 18 37: aload 10
ldc "StubRoutines::"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 40
38: aload 4
aload 16
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.runtimeStub:(Ljava/lang/String;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
aload 17
invokevirtual java.lang.Long.longValue:()J
aload 18
invokevirtual java.lang.Long.longValue:()J
invokevirtual org.openjdk.jmh.util.IntervalMap.add:(Ljava/lang/Object;JJ)V
39: goto 41
40: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.regex.Pattern java.util.regex.Matcher java.lang.Long java.lang.Long
StackMap stack:
aload 4
aload 16
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.interpreter:(Ljava/lang/String;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
aload 17
invokevirtual java.lang.Long.longValue:()J
aload 18
invokevirtual java.lang.Long.longValue:()J
invokevirtual org.openjdk.jmh.util.IntervalMap.add:(Ljava/lang/Object;JJ)V
end local 18 end local 17 end local 16 end local 15 41: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine
StackMap stack:
aload 10
ldc "<nmethod"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 63
42: ldc "(.*?)<nmethod (.*?)/>(.*?)"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
aload 10
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 15
start local 15 43: aload 15
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 63
44: aload 15
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 16
start local 16 45: aload 16
ldc "='"
ldc "="
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 16
46: aload 16
ldc "' "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 17
start local 17 47: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 18
start local 18 48: aload 17
dup
astore 22
arraylength
istore 21
iconst_0
istore 20
goto 56
StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.regex.Matcher java.lang.String java.lang.String[] java.util.HashMap top int int java.lang.String[]
StackMap stack:
49: aload 22
iload 20
aaload
astore 19
start local 19 50: aload 19
ldc "="
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 23
start local 23 51: aload 23
arraylength
iconst_2
if_icmpne 54
52: aload 18
aload 23
iconst_0
aaload
aload 23
iconst_1
aaload
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
53: goto 55
54: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.regex.Matcher java.lang.String java.lang.String[] java.util.HashMap java.lang.String int int java.lang.String[] java.lang.String[]
StackMap stack:
aload 18
aload 23
iconst_0
aaload
aconst_null
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 23 end local 19 55: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine java.util.regex.Matcher java.lang.String java.lang.String[] java.util.HashMap top int int java.lang.String[]
StackMap stack:
iinc 20 1
StackMap locals:
StackMap stack:
56: iload 20
iload 21
if_icmplt 49
57: aload 0
aload 18
ldc "entry"
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual org.openjdk.jmh.profile.AbstractPerfAsmProfiler.parseAddress:(Ljava/lang/String;)Ljava/lang/Long;
astore 19
start local 19 58: aload 5
59: aload 18
ldc "method"
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 18
ldc "compiler"
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 18
ldc "level"
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 18
ldc "compile_id"
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.javaMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
60: aload 19
invokevirtual java.lang.Long.longValue:()J
61: aload 19
invokevirtual java.lang.Long.longValue:()J
aload 18
ldc "size"
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
ladd
62: invokevirtual org.openjdk.jmh.util.IntervalMap.add:(Ljava/lang/Object;JJ)V
end local 19 end local 18 end local 17 end local 16 end local 15 63: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.String java.lang.String[] org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine
StackMap stack:
aload 2
aload 14
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
64: aload 10
astore 9
end local 14 end local 13 end local 12 end local 10 65: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set java.util.Collection java.util.Iterator java.lang.String top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 9 end local 7 66: StackMap locals: org.openjdk.jmh.profile.AbstractPerfAsmProfiler java.io.File java.util.List java.util.SortedMap org.openjdk.jmh.util.IntervalMap org.openjdk.jmh.util.IntervalMap java.util.Set top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
67: new org.openjdk.jmh.util.IntervalMap
dup
invokespecial org.openjdk.jmh.util.IntervalMap.<init>:()V
astore 7
start local 7 68: aload 7
aload 4
invokevirtual org.openjdk.jmh.util.IntervalMap.merge:(Lorg/openjdk/jmh/util/IntervalMap;)V
69: aload 7
aload 5
invokevirtual org.openjdk.jmh.util.IntervalMap.merge:(Lorg/openjdk/jmh/util/IntervalMap;)V
70: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly
dup
aload 2
aload 3
aload 7
aload 6
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly.<init>:(Ljava/util/List;Ljava/util/SortedMap;Lorg/openjdk/jmh/util/IntervalMap;Ljava/util/Set;)V
areturn
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 71 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 71 1 stdOut Ljava/io/File;
1 71 2 lines Ljava/util/List<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$ASMLine;>;
2 71 3 addressMap Ljava/util/SortedMap<Ljava/lang/Long;Ljava/lang/Integer;>;
3 71 4 stubs Lorg/openjdk/jmh/util/IntervalMap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
4 71 5 javaMethods Lorg/openjdk/jmh/util/IntervalMap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
5 71 6 intervals Ljava/util/Set<Lorg/openjdk/jmh/util/Interval;>;
7 66 7 cs Ljava/util/Collection<Ljava/lang/String;>;
8 66 9 prevLine Ljava/lang/String;
10 65 10 line Ljava/lang/String;
11 65 12 trim Ljava/lang/String;
13 65 13 elements [Ljava/lang/String;
14 65 14 asmLine Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$ASMLine;
16 29 15 addr Ljava/lang/Long;
17 29 16 idx I
21 29 17 c I
24 25 18 target Ljava/lang/Long;
33 41 15 pattern Ljava/util/regex/Pattern;
34 41 16 matcher Ljava/util/regex/Matcher;
36 41 17 startAddr Ljava/lang/Long;
37 41 18 endAddr Ljava/lang/Long;
43 63 15 matcher Ljava/util/regex/Matcher;
45 63 16 body Ljava/lang/String;
47 63 17 kvs [Ljava/lang/String;
48 63 18 map Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;
50 55 19 kv Ljava/lang/String;
51 55 23 pair [Ljava/lang/String;
58 63 19 addr Ljava/lang/Long;
68 71 7 methodMap Lorg/openjdk/jmh/util/IntervalMap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
Exception table:
from to target type
23 25 26 Class java.lang.NumberFormatException
15 29 30 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
stdOut
private java.lang.Long parseAddress(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Long;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "0x"
ldc ""
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
ldc ":"
ldc ""
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
bipush 16
invokestatic java.lang.Long.valueOf:(Ljava/lang/String;I)Ljava/lang/Long;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler;
0 1 1 address Ljava/lang/String;
MethodParameters:
Name Flags
address
}
SourceFile: "AbstractPerfAsmProfiler.java"
NestMembers:
org.openjdk.jmh.profile.AbstractPerfAsmProfiler$1 org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly org.openjdk.jmh.profile.AbstractPerfAsmProfiler$GeneratedRegion org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc org.openjdk.jmh.profile.AbstractPerfAsmProfiler$NativeRegion org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResult org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResultAggregator org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region org.openjdk.jmh.profile.AbstractPerfAsmProfiler$UnknownRegion
InnerClasses:
org.openjdk.jmh.profile.AbstractPerfAsmProfiler$1
ASMLine = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$ASMLine of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
Assembly = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Assembly of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
GeneratedRegion = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$GeneratedRegion of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
MethodDesc = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
NativeRegion = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$NativeRegion of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
protected PerfEvents = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
PerfResult = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResult of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
PerfResultAggregator = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfResultAggregator of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
Region = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$Region of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
UnknownRegion = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$UnknownRegion of org.openjdk.jmh.profile.AbstractPerfAsmProfiler