public class org.openjdk.jmh.profile.LinuxPerfAsmProfiler extends org.openjdk.jmh.profile.AbstractPerfAsmProfiler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.openjdk.jmh.profile.LinuxPerfAsmProfiler
super_class: org.openjdk.jmh.profile.AbstractPerfAsmProfiler
{
private final long sampleFrequency;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private joptsimple.OptionSpec<java.lang.Long> optFrequency;
descriptor: Ljoptsimple/OptionSpec;
flags: (0x0002) ACC_PRIVATE
Signature: Ljoptsimple/OptionSpec<Ljava/lang/Long;>;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "cycles"
aastore
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler.<init>:(Ljava/lang/String;[Ljava/lang/String;)V
1: bipush 6
anewarray java.lang.String
dup
iconst_0
getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
aastore
dup
iconst_1
ldc "stat"
aastore
dup
iconst_2
ldc "--log-fd"
aastore
dup
iconst_3
ldc "2"
aastore
dup
iconst_4
ldc "echo"
aastore
dup
iconst_5
ldc "1"
aastore
invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
astore 2
start local 2 2: aload 2
invokeinterface java.util.Collection.isEmpty:()Z
ifne 4
3: new org.openjdk.jmh.profile.ProfilerException
dup
aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler java.lang.String java.util.Collection
StackMap stack:
aload 0
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.optFrequency:Ljoptsimple/OptionSpec;
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
putfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.sampleFrequency:J
5: goto 8
StackMap locals:
StackMap stack: joptsimple.OptionException
6: astore 3
start local 3 7: new org.openjdk.jmh.profile.ProfilerException
dup
aload 3
invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
athrow
end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
0 9 1 initLine Ljava/lang/String;
2 9 2 failMsg Ljava/util/Collection<Ljava/lang/String;>;
7 8 3 e Ljoptsimple/OptionException;
Exception table:
from to target type
4 5 6 Class joptsimple.OptionException
Exceptions:
throws org.openjdk.jmh.profile.ProfilerException
MethodParameters:
Name Flags
initLine
protected void addMyOptions(joptsimple.OptionParser);
descriptor: (Ljoptsimple/OptionParser;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "frequency"
1: ldc "Sampling frequency. This is synonymous to perf record --freq #"
2: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
3: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/Long;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "freq"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc 1000
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
iconst_0
anewarray java.lang.Long
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
4: putfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.optFrequency:Ljoptsimple/OptionSpec;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
0 6 1 parser Ljoptsimple/OptionParser;
MethodParameters:
Name Flags
parser
public java.util.Collection<java.lang.String> addJVMInvokeOptions(org.openjdk.jmh.infra.BenchmarkParams);
descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: bipush 8
anewarray java.lang.String
dup
iconst_0
getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
aastore
dup
iconst_1
ldc "record"
aastore
dup
iconst_2
ldc "--freq"
aastore
dup
iconst_3
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.sampleFrequency:J
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
aastore
dup
iconst_4
ldc "--event"
aastore
dup
iconst_5
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
ldc ","
invokestatic org.openjdk.jmh.util.Utils.join:(Ljava/util/Collection;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
bipush 6
ldc "--output"
aastore
dup
bipush 7
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
0 1 1 params Lorg/openjdk/jmh/infra/BenchmarkParams;
Signature: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection<Ljava/lang/String;>;
MethodParameters:
Name Flags
params
public java.lang.String getDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Linux perf + PrintAssembly Profiler"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
protected void parseEvents();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.FileOutputStream
dup
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.file:()Ljava/io/File;
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 3
start local 3 2: new java.lang.ProcessBuilder
dup
bipush 6
anewarray java.lang.String
dup
iconst_0
getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
aastore
dup
iconst_1
ldc "script"
aastore
dup
iconst_2
ldc "--fields"
aastore
dup
iconst_3
ldc "time,event,ip,sym,dso"
aastore
dup
iconst_4
ldc "--input"
aastore
dup
iconst_5
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
aastore
invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
astore 4
start local 4 3: aload 4
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 5
start local 5 4: new org.openjdk.jmh.util.InputStreamDrainer
dup
aload 5
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
aload 3
invokespecial org.openjdk.jmh.util.InputStreamDrainer.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 6
start local 6 5: new org.openjdk.jmh.util.InputStreamDrainer
dup
aload 5
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
aload 3
invokespecial org.openjdk.jmh.util.InputStreamDrainer.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 7
start local 7 6: aload 6
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.start:()V
7: aload 7
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.start:()V
8: aload 5
invokevirtual java.lang.Process.waitFor:()I
pop
9: aload 6
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.join:()V
10: aload 7
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.join:()V
end local 7 end local 6 end local 5 end local 4 11: aload 3
ifnull 19
aload 3
invokevirtual java.io.FileOutputStream.close:()V
goto 19
StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
StackMap stack: java.lang.Throwable
12: astore 1
aload 3
ifnull 13
aload 3
invokevirtual java.io.FileOutputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
13: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 2
aload 1
ifnonnull 15
aload 2
astore 1
goto 16
StackMap locals:
StackMap stack:
15: aload 1
aload 2
if_acmpeq 16
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 1
athrow
StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler
StackMap stack: java.lang.Exception
17: astore 1
start local 1 18: new java.lang.IllegalStateException
dup
aload 1
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 19: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
2 13 3 fos Ljava/io/FileOutputStream;
3 11 4 pb Ljava/lang/ProcessBuilder;
4 11 5 p Ljava/lang/Process;
5 11 6 errDrainer Lorg/openjdk/jmh/util/InputStreamDrainer;
6 11 7 outDrainer Lorg/openjdk/jmh/util/InputStreamDrainer;
18 19 1 ex Ljava/lang/Exception;
Exception table:
from to target type
2 11 12 any
1 14 14 any
0 17 17 Class java.io.IOException
0 17 17 Class java.lang.InterruptedException
static org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine parsePerfLine(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler$PerfLine;
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=16, args_size=1
start local 0 0: aload 0
ldc "#"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
iconst_m1
istore 1
start local 1 3: goto 6
4: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
istore 1
5: aload 0
ldc " "
ldc " "
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 0
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
iload 1
if_icmpne 4
7: aload 0
ldc ": "
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 8: iload 2
iconst_m1
if_icmpne 9
aconst_null
areturn
9: StackMap locals: int
StackMap stack:
aload 0
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 10: aload 0
iload 2
iconst_2
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
11: aload 3
invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
invokevirtual java.lang.Double.doubleValue:()D
dstore 4
start local 4 12: goto 15
end local 4 StackMap locals: java.lang.String int int java.lang.String
StackMap stack: java.lang.NumberFormatException
13: pop
14: aconst_null
areturn
start local 4 15: StackMap locals: double
StackMap stack:
aload 0
ldc " ("
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 6
start local 6 16: iload 6
iconst_m1
if_icmpne 17
aconst_null
areturn
17: StackMap locals: int
StackMap stack:
aload 0
iload 6
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 7
start local 7 18: aload 7
aload 7
ldc "/"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
iconst_1
iadd
aload 7
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc "("
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;
astore 7
19: aload 0
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 0
20: aload 0
ldc ": "
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 8
start local 8 21: iload 8
iconst_m1
if_icmpne 22
aconst_null
areturn
22: StackMap locals: java.lang.String int
StackMap stack:
aload 0
iconst_0
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
start local 9 23: aload 9
ldc ":"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 10
start local 10 24: iload 10
iconst_m1
if_icmpeq 26
25: aload 9
iconst_0
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
26: StackMap locals: java.lang.String int
StackMap stack:
aload 0
iload 8
iconst_2
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
27: aload 0
ldc " "
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 11
start local 11 28: iload 11
iconst_m1
if_icmpne 29
aconst_null
areturn
29: StackMap locals: int
StackMap stack:
aload 0
iconst_0
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 12
start local 12 30: aload 0
iload 11
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
31: aload 12
bipush 16
invokestatic java.lang.Long.valueOf:(Ljava/lang/String;I)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
lstore 13
start local 13 32: goto 40
end local 13 StackMap locals: java.lang.String int int java.lang.String double int java.lang.String int java.lang.String int int java.lang.String
StackMap stack: java.lang.NumberFormatException
33: pop
34: new java.math.BigInteger
dup
aload 12
bipush 16
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
invokevirtual java.math.BigInteger.longValue:()J
lstore 13
start local 13 35: lload 13
lconst_0
lcmp
ifge 40
aload 7
ldc "unknown"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 40
36: ldc "kernel"
astore 7
37: goto 40
end local 13 StackMap locals:
StackMap stack: java.lang.NumberFormatException
38: pop
39: lconst_0
lstore 13
start local 13 40: StackMap locals: long
StackMap stack:
aload 0
astore 15
start local 15 41: new org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine
dup
dload 4
aload 9
lload 13
aload 15
aload 7
invokespecial org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.<init>:(DLjava/lang/String;JLjava/lang/String;Ljava/lang/String;)V
areturn
end local 15 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 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 line Ljava/lang/String;
3 42 1 lastLength I
8 42 2 timeIdx I
10 42 3 strTime Ljava/lang/String;
12 13 4 time D
15 42 4 time D
16 42 6 libIdx I
18 42 7 lib Ljava/lang/String;
21 42 8 evIdx I
23 42 9 evName Ljava/lang/String;
24 42 10 tagIdx I
28 42 11 addrIdx I
30 42 12 strAddr Ljava/lang/String;
32 33 13 addr J
35 38 13 addr J
40 42 13 addr J
41 42 15 symbol Ljava/lang/String;
Exception table:
from to target type
11 12 13 Class java.lang.NumberFormatException
31 32 33 Class java.lang.NumberFormatException
34 37 38 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
line
protected org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents readEvents(double, double);
descriptor: (DD)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=22, args_size=3
start local 0 start local 1 start local 3 0: dload 1
ldc 1000.0
ddiv
dstore 5
start local 5 1: dload 1
dload 3
dadd
ldc 1000.0
ddiv
dstore 7
start local 7 2: aconst_null
astore 9
aconst_null
astore 10
3: new java.io.FileReader
dup
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.file:()Ljava/io/File;
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
astore 11
start local 11 4: new java.io.BufferedReader
dup
aload 11
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 12
start local 12 5: new org.openjdk.jmh.util.Deduplicator
dup
invokespecial org.openjdk.jmh.util.Deduplicator.<init>:()V
astore 13
start local 13 6: new org.openjdk.jmh.util.HashMultimap
dup
invokespecial org.openjdk.jmh.util.HashMultimap.<init>:()V
astore 14
start local 14 7: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 15
start local 15 8: aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 17
goto 11
StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map top java.util.Iterator
StackMap stack:
9: aload 17
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 16
start local 16 10: aload 15
aload 16
new org.openjdk.jmh.util.TreeMultiset
dup
invokespecial org.openjdk.jmh.util.TreeMultiset.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 16 11: StackMap locals:
StackMap stack:
aload 17
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
12: aconst_null
astore 16
start local 16 13: goto 30
start local 17 14: StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map java.lang.Double java.lang.String
StackMap stack:
aload 17
invokestatic org.openjdk.jmh.profile.LinuxPerfAsmProfiler.parsePerfLine:(Ljava/lang/String;)Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler$PerfLine;
astore 18
start local 18 15: aload 18
ifnonnull 17
16: goto 30
17: StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine
StackMap stack:
aload 16
ifnonnull 20
18: aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.time:()D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
astore 16
19: goto 24
20: StackMap locals:
StackMap stack:
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.time:()D
aload 16
invokevirtual java.lang.Double.doubleValue:()D
dsub
dload 5
dcmpg
ifge 22
21: goto 30
22: StackMap locals:
StackMap stack:
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.time:()D
aload 16
invokevirtual java.lang.Double.doubleValue:()D
dsub
dload 7
dcmpl
ifle 24
23: goto 30
24: StackMap locals:
StackMap stack:
aload 15
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.eventName:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
astore 19
start local 19 25: aload 19
ifnonnull 27
26: goto 30
27: StackMap locals: org.openjdk.jmh.util.Multiset
StackMap stack:
aload 19
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.addr:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;)V
28: aload 13
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.symbol:()Ljava/lang/String;
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.lib:()Ljava/lang/String;
invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.nativeMethod:(Ljava/lang/String;Ljava/lang/String;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
invokevirtual org.openjdk.jmh.util.Deduplicator.dedup:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
astore 20
start local 20 29: aload 14
aload 20
aload 18
invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.addr:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.openjdk.jmh.util.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 20 end local 19 end local 18 end local 17 30: StackMap locals:
StackMap stack:
aload 12
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 17
start local 17 31: ifnonnull 14
32: new org.openjdk.jmh.util.IntervalMap
dup
invokespecial org.openjdk.jmh.util.IntervalMap.<init>:()V
astore 18
start local 18 33: aload 14
invokeinterface org.openjdk.jmh.util.Multimap.keys:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 20
goto 37
StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map java.lang.Double java.lang.String org.openjdk.jmh.util.IntervalMap top java.util.Iterator
StackMap stack:
34: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
astore 19
start local 19 35: aload 14
aload 19
invokeinterface org.openjdk.jmh.util.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
astore 21
start local 21 36: aload 18
aload 19
aload 21
invokestatic org.openjdk.jmh.util.Utils.min:(Ljava/util/Collection;)Ljava/lang/Comparable;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
aload 21
invokestatic org.openjdk.jmh.util.Utils.max:(Ljava/util/Collection;)Ljava/lang/Comparable;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
invokevirtual org.openjdk.jmh.util.IntervalMap.add:(Ljava/lang/Object;JJ)V
end local 21 end local 19 37: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
38: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
dup
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
aload 15
aload 18
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.<init>:(Ljava/util/Collection;Ljava/util/Map;Lorg/openjdk/jmh/util/IntervalMap;)V
39: aload 12
ifnull 40
aload 12
invokevirtual java.io.BufferedReader.close:()V
StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map java.lang.Double java.lang.String org.openjdk.jmh.util.IntervalMap
StackMap stack: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
40: aload 11
ifnull 41
aload 11
invokevirtual java.io.FileReader.close:()V
41: StackMap locals:
StackMap stack: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
areturn
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
StackMap stack: java.lang.Throwable
42: astore 9
43: aload 12
ifnull 44
aload 12
invokevirtual java.io.BufferedReader.close:()V
end local 12 StackMap locals:
StackMap stack:
44: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
45: astore 10
aload 9
ifnonnull 46
aload 10
astore 9
goto 47
StackMap locals:
StackMap stack:
46: aload 9
aload 10
if_acmpeq 47
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
47: aload 11
ifnull 48
aload 11
invokevirtual java.io.FileReader.close:()V
end local 11 StackMap locals:
StackMap stack:
48: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
49: astore 10
aload 9
ifnonnull 50
aload 10
astore 9
goto 51
StackMap locals:
StackMap stack:
50: aload 9
aload 10
if_acmpeq 51
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
51: aload 9
athrow
StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double
StackMap stack: java.io.IOException
52: pop
53: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
dup
aload 0
getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.<init>:(Ljava/util/Collection;)V
areturn
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
0 54 1 skipMs D
0 54 3 lenMs D
1 54 5 readFrom D
2 54 7 readTo D
4 48 11 fr Ljava/io/FileReader;
5 44 12 reader Ljava/io/BufferedReader;
6 42 13 dedup Lorg/openjdk/jmh/util/Deduplicator<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
7 42 14 methods Lorg/openjdk/jmh/util/Multimap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;Ljava/lang/Long;>;
8 42 15 events Ljava/util/Map<Ljava/lang/String;Lorg/openjdk/jmh/util/Multiset<Ljava/lang/Long;>;>;
10 11 16 evName Ljava/lang/String;
13 42 16 startTime Ljava/lang/Double;
14 30 17 line Ljava/lang/String;
31 42 17 line Ljava/lang/String;
15 30 18 perfline Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler$PerfLine;
25 30 19 evs Lorg/openjdk/jmh/util/Multiset<Ljava/lang/Long;>;
29 30 20 desc Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
33 42 18 methodMap Lorg/openjdk/jmh/util/IntervalMap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
35 37 19 md Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
36 37 21 addrs Ljava/util/Collection<Ljava/lang/Long;>;
Exception table:
from to target type
5 39 42 any
4 40 45 any
42 45 45 any
3 41 49 any
42 49 49 any
2 41 52 Class java.io.IOException
42 52 52 Class java.io.IOException
MethodParameters:
Name Flags
skipMs
lenMs
protected java.lang.String perfBinaryExtension();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc ".perfbin"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
}
SourceFile: "LinuxPerfAsmProfiler.java"
NestMembers:
org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine
InnerClasses:
MethodDesc = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
protected PerfEvents = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
PerfLine = org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine of org.openjdk.jmh.profile.LinuxPerfAsmProfiler