public class org.openjdk.jmh.profile.WinPerfAsmProfiler 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.WinPerfAsmProfiler
super_class: org.openjdk.jmh.profile.AbstractPerfAsmProfiler
{
private final java.lang.String xperfProviders;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String symbolDir;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String path;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.lang.String pid;
descriptor: Ljava/lang/String;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private joptsimple.OptionSpec<java.lang.String> optXperfDir;
descriptor: Ljoptsimple/OptionSpec;
flags: (0x0002) ACC_PRIVATE
Signature: Ljoptsimple/OptionSpec<Ljava/lang/String;>;
private joptsimple.OptionSpec<java.lang.String> optXperfProviders;
descriptor: Ljoptsimple/OptionSpec;
flags: (0x0002) ACC_PRIVATE
Signature: Ljoptsimple/OptionSpec<Ljava/lang/String;>;
private joptsimple.OptionSpec<java.lang.String> optSymbolDir;
descriptor: Ljoptsimple/OptionSpec;
flags: (0x0002) ACC_PRIVATE
Signature: Ljoptsimple/OptionSpec<Ljava/lang/String;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.openjdk.jmh.profile.WinPerfAsmProfiler.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "SampledProfile"
aastore
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler.<init>:(Ljava/lang/String;[Ljava/lang/String;)V
1: aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.optXperfDir:Ljoptsimple/OptionSpec;
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 2: aload 0
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.optXperfProviders:Ljoptsimple/OptionSpec;
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.xperfProviders:Ljava/lang/String;
3: aload 0
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.set:Ljoptsimple/OptionSet;
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.optSymbolDir:Ljoptsimple/OptionSpec;
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.symbolDir:Ljava/lang/String;
4: aload 0
aload 2
ifnull 5
aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifne 5
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "xperf"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 6
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler java.lang.String java.lang.String
StackMap stack: org.openjdk.jmh.profile.WinPerfAsmProfiler
5: ldc "xperf"
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler java.lang.String java.lang.String
StackMap stack: org.openjdk.jmh.profile.WinPerfAsmProfiler java.lang.String
6: putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.path:Ljava/lang/String;
end local 2 7: goto 10
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler java.lang.String
StackMap stack: joptsimple.OptionException
8: astore 2
start local 2 9: new org.openjdk.jmh.profile.ProfilerException
dup
aload 2
invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
athrow
end local 2 10: StackMap locals:
StackMap stack:
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.path:Ljava/lang/String;
aastore
invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
astore 2
start local 2 11: aload 2
invokeinterface java.util.Collection.isEmpty:()Z
ifne 13
12: 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
13: StackMap locals: java.util.Collection
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
0 14 1 initLine Ljava/lang/String;
2 7 2 xperfDir Ljava/lang/String;
9 10 2 e Ljoptsimple/OptionException;
11 14 2 errs Ljava/util/Collection<Ljava/lang/String;>;
Exception table:
from to target type
1 7 8 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 "xperf.dir"
1: ldc "Path to \"xperf\" installation directory. Empty by default, so that xperf is expected to be in PATH."
2: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
3: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "path"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
4: putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.optXperfDir:Ljoptsimple/OptionSpec;
5: aload 0
aload 1
ldc "xperf.providers"
6: ldc "xperf providers to use."
7: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
8: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "string"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "loader+proc_thread+profile"
iconst_0
anewarray java.lang.String
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
9: putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.optXperfProviders:Ljoptsimple/OptionSpec;
10: aload 0
aload 1
ldc "symbol.dir"
11: ldc "Path to a directory with jvm.dll symbols (optional)."
12: invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
13: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc Ljava/lang/String;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "string"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
14: putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.optSymbolDir:Ljoptsimple/OptionSpec;
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
0 16 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=1, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
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 void beforeTrial(org.openjdk.jmh.infra.BenchmarkParams);
descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_3
anewarray java.lang.String
dup
iconst_0
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.path:Ljava/lang/String;
aastore
dup
iconst_1
ldc "-on"
aastore
dup
iconst_2
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.xperfProviders:Ljava/lang/String;
aastore
invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
astore 2
start local 2 1: aload 2
invokeinterface java.util.Collection.isEmpty:()Z
ifne 3
2: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Failed to start xperf: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.util.Collection
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
0 4 1 params Lorg/openjdk/jmh/infra/BenchmarkParams;
1 4 2 errs Ljava/util/Collection<Ljava/lang/String;>;
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=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: lload 2
lconst_0
lcmp
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "perfasm needs the forked VM PID, but it is not initialized."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
lload 2
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
putfield org.openjdk.jmh.profile.WinPerfAsmProfiler.pid:Ljava/lang/String;
3: aload 0
aload 1
lload 2
aload 4
aload 5
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler.afterTrial:(Lorg/openjdk/jmh/results/BenchmarkResult;JLjava/io/File;Ljava/io/File;)Ljava/util/Collection;
areturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
0 4 1 br Lorg/openjdk/jmh/results/BenchmarkResult;
0 4 2 pid J
0 4 4 stdOut Ljava/io/File;
0 4 5 stdErr Ljava/io/File;
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 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 "Windows xperf + PrintAssembly Profiler"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
protected void parseEvents();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=1
start local 0 0: iconst_3
anewarray java.lang.String
dup
iconst_0
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.path:Ljava/lang/String;
aastore
dup
iconst_1
ldc "-d"
aastore
dup
iconst_2
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
aastore
invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
astore 1
start local 1 1: aload 1
invokeinterface java.util.Collection.isEmpty:()Z
ifne 3
2: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Failed to stop xperf: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.util.Collection
StackMap stack:
new java.lang.ProcessBuilder
dup
bipush 6
anewarray java.lang.String
dup
iconst_0
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.path:Ljava/lang/String;
aastore
dup
iconst_1
ldc "-i"
aastore
dup
iconst_2
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
aastore
dup
iconst_3
ldc "-symbols"
aastore
dup
iconst_4
ldc "-a"
aastore
dup
iconst_5
ldc "dumper"
aastore
invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
astore 2
start local 2 4: aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.symbolDir:Ljava/lang/String;
ifnull 6
5: aload 2
invokevirtual java.lang.ProcessBuilder.environment:()Ljava/util/Map;
ldc "_NT_SYMBOL_PATH"
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.symbolDir:Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.lang.ProcessBuilder
StackMap stack:
aload 2
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 3
start local 3 7: new java.io.FileOutputStream
dup
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.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 4
start local 4 8: new org.openjdk.jmh.util.InputStreamDrainer
dup
aload 3
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
aload 4
invokespecial org.openjdk.jmh.util.InputStreamDrainer.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 5
start local 5 9: new org.openjdk.jmh.util.InputStreamDrainer
dup
aload 3
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
aload 4
invokespecial org.openjdk.jmh.util.InputStreamDrainer.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 6
start local 6 10: aload 5
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.start:()V
11: aload 6
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.start:()V
12: aload 3
invokevirtual java.lang.Process.waitFor:()I
pop
13: aload 5
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.join:()V
14: aload 6
invokevirtual org.openjdk.jmh.util.InputStreamDrainer.join:()V
end local 6 end local 5 end local 4 end local 3 end local 2 15: goto 18
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler java.util.Collection
StackMap stack: java.lang.Exception
16: astore 2
start local 2 17: new java.lang.IllegalStateException
dup
aload 2
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
1 19 1 errs Ljava/util/Collection<Ljava/lang/String;>;
4 15 2 pb Ljava/lang/ProcessBuilder;
7 15 3 p Ljava/lang/Process;
8 15 4 fos Ljava/io/FileOutputStream;
9 15 5 errDrainer Lorg/openjdk/jmh/util/InputStreamDrainer;
10 15 6 outDrainer Lorg/openjdk/jmh/util/InputStreamDrainer;
17 18 2 ex Ljava/lang/Exception;
Exception table:
from to target type
3 15 16 Class java.io.IOException
3 15 16 Class java.lang.InterruptedException
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=31, 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.WinPerfAsmProfiler.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.WinPerfAsmProfiler.events:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 17
goto 11
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler 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: goto 44
start local 16 13: StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler 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.String
StackMap stack:
aload 16
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 16
14: aload 16
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 17
start local 17 15: aload 17
iconst_0
aaload
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 18
start local 18 16: aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.events:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
aload 18
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
17: goto 44
18: StackMap locals: java.lang.String[] java.lang.String
StackMap stack:
aload 17
iconst_2
aaload
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 19
start local 19 19: aload 19
ldc "("
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 20
start local 20 20: aload 19
ldc ")"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 21
start local 21 21: iload 20
iconst_m1
if_icmpeq 44
iload 21
iconst_m1
if_icmpeq 44
iload 21
iload 20
if_icmpge 23
22: goto 44
23: StackMap locals: java.lang.String int int
StackMap stack:
aload 19
iload 20
iconst_1
iadd
iload 21
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 19
24: aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.pid:Ljava/lang/String;
aload 19
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
25: goto 44
26: StackMap locals:
StackMap stack:
aload 17
iconst_1
aaload
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 22
start local 22 27: aload 22
invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
invokevirtual java.lang.Double.doubleValue:()D
ldc 1000000.0
ddiv
dstore 23
start local 23 28: dload 23
dload 5
dcmpg
ifge 30
29: goto 44
30: StackMap locals: java.lang.String double
StackMap stack:
dload 23
dload 7
dcmpl
ifle 32
31: goto 44
32: StackMap locals:
StackMap stack:
aload 17
iconst_4
aaload
invokevirtual java.lang.String.trim:()Ljava/lang/String;
ldc "0x"
ldc ""
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 25
start local 25 33: aload 17
bipush 7
aaload
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 26
start local 26 34: aload 26
iconst_0
aload 26
bipush 33
invokevirtual java.lang.String.indexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 27
start local 27 35: aload 26
aload 26
bipush 33
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 28
start local 28 36: aload 15
aload 18
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.openjdk.jmh.util.Multiset
astore 29
start local 29 37: getstatic org.openjdk.jmh.profile.WinPerfAsmProfiler.$assertionsDisabled:Z
ifne 38
aload 29
ifnonnull 38
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler 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.String java.lang.String[] java.lang.String java.lang.String int int java.lang.String double java.lang.String java.lang.String java.lang.String java.lang.String org.openjdk.jmh.util.Multiset
StackMap stack:
aload 25
bipush 16
invokestatic java.lang.Long.valueOf:(Ljava/lang/String;I)Ljava/lang/Long;
astore 30
start local 30 39: aload 29
aload 30
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;)V
40: aload 14
aload 13
aload 28
aload 27
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
aload 30
invokeinterface org.openjdk.jmh.util.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 30 41: goto 44
StackMap locals:
StackMap stack: java.lang.NumberFormatException
42: pop
43: aload 29
lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;)V
end local 29 end local 28 end local 27 end local 26 end local 25 end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 44: StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler 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
StackMap stack:
aload 12
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 16
start local 16 45: ifnonnull 13
46: new org.openjdk.jmh.util.IntervalMap
dup
invokespecial org.openjdk.jmh.util.IntervalMap.<init>:()V
astore 17
start local 17 47: aload 14
invokeinterface org.openjdk.jmh.util.Multimap.keys:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 19
goto 51
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler 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.String org.openjdk.jmh.util.IntervalMap top java.util.Iterator
StackMap stack:
48: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
astore 18
start local 18 49: aload 14
aload 18
invokeinterface org.openjdk.jmh.util.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
astore 20
start local 20 50: aload 17
aload 18
aload 20
invokestatic org.openjdk.jmh.util.Utils.min:(Ljava/util/Collection;)Ljava/lang/Comparable;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
aload 20
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 20 end local 18 51: StackMap locals:
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
52: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
dup
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.events:Ljava/util/List;
aload 15
aload 17
invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.<init>:(Ljava/util/Collection;Ljava/util/Map;Lorg/openjdk/jmh/util/IntervalMap;)V
53: aload 12
ifnull 54
aload 12
invokevirtual java.io.BufferedReader.close:()V
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler 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.String org.openjdk.jmh.util.IntervalMap
StackMap stack: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
54: aload 11
ifnull 55
aload 11
invokevirtual java.io.FileReader.close:()V
55: StackMap locals:
StackMap stack: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
StackMap stack: java.lang.Throwable
56: astore 9
57: aload 12
ifnull 58
aload 12
invokevirtual java.io.BufferedReader.close:()V
end local 12 StackMap locals:
StackMap stack:
58: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
59: astore 10
aload 9
ifnonnull 60
aload 10
astore 9
goto 61
StackMap locals:
StackMap stack:
60: aload 9
aload 10
if_acmpeq 61
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
61: aload 11
ifnull 62
aload 11
invokevirtual java.io.FileReader.close:()V
end local 11 StackMap locals:
StackMap stack:
62: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
63: astore 10
aload 9
ifnonnull 64
aload 10
astore 9
goto 65
StackMap locals:
StackMap stack:
64: aload 9
aload 10
if_acmpeq 65
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
65: aload 9
athrow
StackMap locals: org.openjdk.jmh.profile.WinPerfAsmProfiler double double double double
StackMap stack: java.io.IOException
66: pop
67: new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
dup
aload 0
getfield org.openjdk.jmh.profile.WinPerfAsmProfiler.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 68 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
0 68 1 skipMs D
0 68 3 lenMs D
1 68 5 readFrom D
2 68 7 readTo D
4 62 11 fr Ljava/io/FileReader;
5 58 12 reader Ljava/io/BufferedReader;
6 56 13 dedup Lorg/openjdk/jmh/util/Deduplicator<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
7 56 14 methods Lorg/openjdk/jmh/util/Multimap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;Ljava/lang/Long;>;
8 56 15 events Ljava/util/Map<Ljava/lang/String;Lorg/openjdk/jmh/util/Multiset<Ljava/lang/Long;>;>;
10 11 16 evName Ljava/lang/String;
13 44 16 line Ljava/lang/String;
45 56 16 line Ljava/lang/String;
15 44 17 elems [Ljava/lang/String;
16 44 18 evName Ljava/lang/String;
19 44 19 pidStr Ljava/lang/String;
20 44 20 pidOpenIdx I
21 44 21 pidCloseIdx I
27 44 22 timeStr Ljava/lang/String;
28 44 23 time D
33 44 25 addrStr Ljava/lang/String;
34 44 26 libSymStr Ljava/lang/String;
35 44 27 lib Ljava/lang/String;
36 44 28 symbol Ljava/lang/String;
37 44 29 evs Lorg/openjdk/jmh/util/Multiset<Ljava/lang/Long;>;
39 41 30 addr Ljava/lang/Long;
47 56 17 methodMap Lorg/openjdk/jmh/util/IntervalMap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
49 51 18 md Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
50 51 20 longs Ljava/util/Collection<Ljava/lang/Long;>;
Exception table:
from to target type
38 41 42 Class java.lang.NumberFormatException
5 53 56 any
4 54 59 any
56 59 59 any
3 55 63 any
56 63 63 any
2 55 66 Class java.io.IOException
56 66 66 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 ".etl"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/WinPerfAsmProfiler;
}
SourceFile: "WinPerfAsmProfiler.java"
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