public final class org.openjdk.jmh.profile.AsyncProfiler extends java.lang.Object implements org.openjdk.jmh.profile.ExternalProfiler, org.openjdk.jmh.profile.InternalProfiler
{
private final org.openjdk.jmh.profile.AsyncProfiler$JavaApi instance;
private final boolean verbose;
private final org.openjdk.jmh.profile.AsyncProfiler$Direction direction;
private final java.lang.String profilerConfig;
private final java.util.List output;
private final java.lang.String outputFilePrefix;
private final java.io.File outDir;
private java.io.File trialOutDir;
private final int traces;
private final int flat;
private boolean isVersion1x;
private boolean warmupStarted;
private boolean measurementStarted;
private int measurementIterationCount;
private final java.util.LinkedHashSet generated;
public void <init>(java.lang.String) throws org.openjdk.jmh.profile.ProfilerException
{
org.openjdk.jmh.profile.AsyncProfiler$Direction v;
java.lang.Integer v, v;
java.util.EnumSet v, v, v;
org.openjdk.jmh.profile.AsyncProfiler$Direction[] v;
java.lang.Boolean[] v, v;
java.lang.Integer[] v, v;
java.io.IOException v;
org.openjdk.jmh.profile.ProfilerOptionFormatter v;
org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder v;
joptsimple.OptionParser v;
joptsimple.OptionSet v;
java.util.HashSet v;
int v, v, v, v;
java.lang.Boolean v, v;
org.openjdk.jmh.profile.AsyncProfiler$OutputType v, v, v;
java.io.PrintStream v;
org.openjdk.jmh.profile.ProfilerException v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v;
java.lang.UnsatisfiedLinkError v;
joptsimple.ArgumentAcceptingOptionSpec v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
joptsimple.OptionSpecBuilder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.openjdk.jmh.profile.AsyncProfiler$JavaApi v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.LinkedHashSet v;
org.openjdk.jmh.profile.AsyncProfiler$OutputType[] v;
java.io.File v, v;
org.openjdk.jmh.profile.AsyncProfiler v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v, v;
java.lang.String[] v;
joptsimple.OptionException v;
java.util.Iterator v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.LinkedHashSet generated> = v;
v = new joptsimple.OptionParser;
specialinvoke v.<joptsimple.OptionParser: void <init>()>();
v = new org.openjdk.jmh.profile.ProfilerOptionFormatter;
specialinvoke v.<org.openjdk.jmh.profile.ProfilerOptionFormatter: void <init>(java.lang.String)>("async");
virtualinvoke v.<joptsimple.OptionParser: void formatHelpWith(joptsimple.HelpFormatter)>(v);
v = staticinvoke <java.util.EnumSet: java.util.EnumSet allOf(java.lang.Class)>(class "Lorg/openjdk/jmh/profile/AsyncProfiler$OutputType;");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.EnumSet)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Output format(s). Supported: \u.");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("output", v);
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Lorg/openjdk/jmh/profile/AsyncProfiler$OutputType;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec withValuesSeparatedBy(java.lang.String)>(",");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("format+");
v = <org.openjdk.jmh.profile.AsyncProfiler$OutputType: org.openjdk.jmh.profile.AsyncProfiler$OutputType text>;
v = newarray (org.openjdk.jmh.profile.AsyncProfiler$OutputType)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>(v, v);
v = staticinvoke <java.util.EnumSet: java.util.EnumSet allOf(java.lang.Class)>(class "Lorg/openjdk/jmh/profile/AsyncProfiler$Direction;");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.EnumSet)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Direction(s) of flame graph. Supported: \u.");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("direction", v);
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Lorg/openjdk/jmh/profile/AsyncProfiler$Direction;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("direction");
v = <org.openjdk.jmh.profile.AsyncProfiler$Direction: org.openjdk.jmh.profile.AsyncProfiler$Direction both>;
v = newarray (org.openjdk.jmh.profile.AsyncProfiler$Direction)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>(v, v);
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("libPath", "Location of asyncProfiler library. If not specified, System.loadLibrary will be used and the library must be made available to the forked JVM in an entry of -Djava.library.path, LD_LIBRARY_PATH (Linux), or DYLD_LIBRARY_PATH (Mac OS).");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("path");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("event", "Event to sample: cpu, alloc, lock, wall, itimer; com.foo.Bar.methodName; any event from `perf list` e.g. cache-misses");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("event");
v = newarray (java.lang.String)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>("cpu", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("May be captured as a secondary event under output=jfr.") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Enable allocation profiling. Optional argument (e.g. =512k) reduces sampling from the default of one-sample-per-TLAB. \u0001");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("alloc", v);
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withOptionalArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("sample bytes");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("May be captured as a secondary event under output=jfr.") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Enable lock profiling. Optional argument (e.g. =1ms) limits capture based on lock duration. \u0001");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("lock", v);
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withOptionalArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("duration");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("dir", "Output directory.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("dir");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("interval", "Profiling interval.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Long;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("ns");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("jstackdepth", "Maximum Java stack depth.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Integer;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("frames");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("framebuf", "Size of profiler framebuffer.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Long;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bytes");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("filter", "Enable thread filtering during collection. Useful for wall clock profiling, but only if the workload registers the relevant threads programatically via `AsyncProfiler.JavaApi.getInstance().filterThread(thread, enabled)`.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = newarray (java.lang.Boolean)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>(v, v);
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("boolean");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("threads", "Profile threads separately.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("simple", "Simple class names instead of FQN.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("sig", "Print method signatures.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("ann", "Annotate Java method names.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("include", "Output only stack traces containing the specified pattern.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec withValuesSeparatedBy(java.lang.String)>(",");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("regexp+");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("exclude", "Exclude stack traces with the specified pattern.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec withValuesSeparatedBy(java.lang.String)>(",");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("regexp+");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("rawCommand", "Command to pass directly to async-profiler. Use to access new features of JMH profiler that are not yet supported in this option parser.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("command");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("title", "SVG title.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/String;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("string");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("width", "SVG width.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Long;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("pixels");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("minwidth", "Skip frames smaller than px");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Long;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("pixels");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("allkernel", "Only include kernel-mode events.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("alluser", "Only include user-mode events.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = staticinvoke <java.util.EnumSet: java.util.EnumSet allOf(java.lang.Class)>(class "Lorg/openjdk/jmh/profile/AsyncProfiler$CStackMode;");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.EnumSet)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("How to traverse C stack: Supported: \u.");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("cstack", v);
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Lorg/openjdk/jmh/profile/AsyncProfiler$CStackMode;");
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("mode");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("verbose", "Output the sequence of commands.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Boolean;");
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = newarray (java.lang.Boolean)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>(v, v);
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("bool");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("traces", "Number of top traces to include in the default output.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Integer;");
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(200);
v = newarray (java.lang.Integer)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>(v, v);
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("int");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("flat", "Number of top flat profiles to include in the default output.");
v = virtualinvoke v.<joptsimple.OptionSpecBuilder: joptsimple.ArgumentAcceptingOptionSpec withRequiredArg()>();
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class)>(class "Ljava/lang/Integer;");
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(200);
v = newarray (java.lang.Integer)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>(v, v);
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String)>("int");
v = staticinvoke <org.openjdk.jmh.profile.ProfilerUtils: joptsimple.OptionSet parseInitLine(java.lang.String,joptsimple.OptionParser)>(v, v);
label:
v = new org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder;
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void <init>(joptsimple.OptionSet)>(v);
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v != 0 goto label;
v = new java.io.File;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("user.dir");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outDir> = v;
goto label;
label:
v = new java.io.File;
v = virtualinvoke v.<joptsimple.OptionSet: java.lang.Object valueOf(joptsimple.OptionSpec)>(v);
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outDir> = v;
label:
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfTrue(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfTrue(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfTrue(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfTrue(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendRaw(java.lang.String)>("filter");
label:
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendMulti(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendMulti(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfTrue(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfTrue(joptsimple.OptionSpec)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendIfExists(joptsimple.OptionSpec)>(v);
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendRaw(java.lang.String)>(v);
label:
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: int traces> = v;
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: int flat> = v;
label:
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = staticinvoke <org.openjdk.jmh.profile.AsyncProfiler$JavaApi: org.openjdk.jmh.profile.AsyncProfiler$JavaApi getInstance(java.lang.String)>(v);
v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$JavaApi instance> = v;
goto label;
label:
v = staticinvoke <org.openjdk.jmh.profile.AsyncProfiler$JavaApi: org.openjdk.jmh.profile.AsyncProfiler$JavaApi getInstance()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$JavaApi instance> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.openjdk.jmh.profile.ProfilerException;
specialinvoke v.<org.openjdk.jmh.profile.ProfilerException: void <init>(java.lang.String,java.lang.Throwable)>("Unable to load async-profiler. Ensure asyncProfiler library is on LD_LIBRARY_PATH (Linux), DYLD_LIBRARY_PATH (Mac OS), or -Djava.library.path. Alternatively, point to explicit library location with -prof async:libPath=<path>.", v);
throw v;
label:
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: boolean verbose> = v;
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$JavaApi instance>;
v = virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$JavaApi: java.lang.String execute(java.lang.String)>("version");
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean verbose>;
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("[async-profiler] version=\u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("1.");
v.<org.openjdk.jmh.profile.AsyncProfiler: boolean isVersion1x> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.openjdk.jmh.profile.ProfilerException;
specialinvoke v.<org.openjdk.jmh.profile.ProfilerException: void <init>(java.lang.Exception)>(v);
throw v;
label:
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$Direction direction> = v;
v = interfaceinvoke v.<joptsimple.OptionSpec: java.util.List values(joptsimple.OptionSet)>(v);
v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.List output> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>("alloc");
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void append(joptsimple.OptionSpec)>(v);
label:
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>("lock");
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void append(joptsimple.OptionSpec)>(v);
label:
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
v = virtualinvoke v.<joptsimple.OptionSet: java.lang.Object valueOf(joptsimple.OptionSpec)>(v);
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(",");
if v == 0 goto label;
v = new org.openjdk.jmh.profile.ProfilerException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Event name should not contain commas: \u0001");
specialinvoke v.<org.openjdk.jmh.profile.ProfilerException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String outputFilePrefix> = v;
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void append(joptsimple.OptionSpec)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: void appendRaw(java.lang.String)>("event=cpu");
v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String outputFilePrefix> = "cpu";
goto label;
label:
v = interfaceinvoke v.<java.util.Set: int size()>();
if v != 1 goto label;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String outputFilePrefix> = v;
interfaceinvoke v.<java.util.Set: void clear()>();
goto label;
label:
v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String outputFilePrefix> = "profile";
label:
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean isVersion1x>;
if v == 0 goto label;
v = new org.openjdk.jmh.profile.ProfilerException;
specialinvoke v.<org.openjdk.jmh.profile.ProfilerException: void <init>(java.lang.String)>("Secondary event capture not supported on async-profiler 1.x");
throw v;
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.List output>;
v = interfaceinvoke v.<java.util.List: int size()>();
if v > 1 goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.List output>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = <org.openjdk.jmh.profile.AsyncProfiler$OutputType: org.openjdk.jmh.profile.AsyncProfiler$OutputType jfr>;
if v == v goto label;
label:
v = new org.openjdk.jmh.profile.ProfilerException;
v = <org.openjdk.jmh.profile.AsyncProfiler$OutputType: org.openjdk.jmh.profile.AsyncProfiler$OutputType jfr>;
v = virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$OutputType: java.lang.String name()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Secondary event capture is only supported with output=\u0001");
specialinvoke v.<org.openjdk.jmh.profile.ProfilerException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$ProfilerOptionsBuilder: java.lang.String profilerOptions()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String profilerConfig> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.openjdk.jmh.profile.ProfilerException;
v = virtualinvoke v.<joptsimple.OptionException: java.lang.String getMessage()>();
specialinvoke v.<org.openjdk.jmh.profile.ProfilerException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
catch java.lang.UnsatisfiedLinkError from label to label with label;
catch java.io.IOException from label to label with label;
catch joptsimple.OptionException from label to label with label;
}
public void beforeIteration(org.openjdk.jmh.infra.BenchmarkParams, org.openjdk.jmh.infra.IterationParams)
{
java.io.File v;
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.infra.IterationParams v;
org.openjdk.jmh.profile.AsyncProfiler v;
org.openjdk.jmh.runner.IterationType v, v, v, v;
boolean v, v, v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v := @parameter: org.openjdk.jmh.infra.IterationParams;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File trialOutDir>;
if v != null goto label;
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void createTrialOutDir(org.openjdk.jmh.infra.BenchmarkParams)>(v);
label:
v = virtualinvoke v.<org.openjdk.jmh.infra.IterationParams: org.openjdk.jmh.runner.IterationType getType()>();
v = <org.openjdk.jmh.runner.IterationType: org.openjdk.jmh.runner.IterationType WARMUP>;
if v != v goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean warmupStarted>;
if v != 0 goto label;
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void start()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: boolean warmupStarted> = 1;
label:
v = virtualinvoke v.<org.openjdk.jmh.infra.IterationParams: org.openjdk.jmh.runner.IterationType getType()>();
v = <org.openjdk.jmh.runner.IterationType: org.openjdk.jmh.runner.IterationType MEASUREMENT>;
if v != v goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean measurementStarted>;
if v != 0 goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean warmupStarted>;
if v == 0 goto label;
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String execute(java.lang.String)>("stop");
label:
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void start()>();
v.<org.openjdk.jmh.profile.AsyncProfiler: boolean measurementStarted> = 1;
label:
return;
}
private void start()
{
java.io.File v;
java.util.List v;
org.openjdk.jmh.profile.AsyncProfiler v;
org.openjdk.jmh.profile.AsyncProfiler$OutputType v;
java.lang.String v, v, v, v, v;
boolean v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.List output>;
v = <org.openjdk.jmh.profile.AsyncProfiler$OutputType: org.openjdk.jmh.profile.AsyncProfiler$OutputType jfr>;
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String profilerConfig>;
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outputFile(java.lang.String)>("jfr-%s.jfr");
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start,\u,file=\u0001");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String execute(java.lang.String)>(v);
goto label;
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String profilerConfig>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start,\u0001");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String execute(java.lang.String)>(v);
label:
return;
}
public java.util.Collection afterIteration(org.openjdk.jmh.infra.BenchmarkParams, org.openjdk.jmh.infra.IterationParams, org.openjdk.jmh.results.IterationResult)
{
org.openjdk.jmh.results.IterationResult v;
java.util.List v, v;
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.infra.IterationParams v;
org.openjdk.jmh.profile.AsyncProfiler v;
int v, v, v, v;
org.openjdk.jmh.results.TextResult v;
org.openjdk.jmh.runner.IterationType v, v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v := @parameter: org.openjdk.jmh.infra.IterationParams;
v := @parameter: org.openjdk.jmh.results.IterationResult;
v = virtualinvoke v.<org.openjdk.jmh.infra.IterationParams: org.openjdk.jmh.runner.IterationType getType()>();
v = <org.openjdk.jmh.runner.IterationType: org.openjdk.jmh.runner.IterationType MEASUREMENT>;
if v != v goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: int measurementIterationCount>;
v = v + 1;
v.<org.openjdk.jmh.profile.AsyncProfiler: int measurementIterationCount> = v;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: int measurementIterationCount>;
v = virtualinvoke v.<org.openjdk.jmh.infra.IterationParams: int getCount()>();
if v != v goto label;
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.results.TextResult stopAndDump()>();
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
return v;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
}
private void createTrialOutDir(org.openjdk.jmh.infra.BenchmarkParams)
{
java.io.File v, v, v, v;
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.profile.AsyncProfiler v;
java.lang.String v, v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File trialOutDir>;
if v != null goto label;
v = virtualinvoke v.<org.openjdk.jmh.infra.BenchmarkParams: java.lang.String id()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("%", "_");
v = new java.io.File;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outDir>;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File trialOutDir> = v;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File trialOutDir>;
virtualinvoke v.<java.io.File: boolean mkdirs()>();
label:
return;
}
private org.openjdk.jmh.results.TextResult stopAndDump()
{
org.openjdk.jmh.profile.AsyncProfiler$Direction v, v, v, v, v, v, v, v;
org.openjdk.jmh.profile.AsyncProfiler v;
int[] v;
boolean v, v, v, v, v;
java.io.PrintWriter v;
java.util.Collection v;
java.util.List v;
org.openjdk.jmh.results.TextResult v;
int v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.util.LinkedHashSet v;
java.util.Iterator v, v, v;
java.io.StringWriter v;
java.io.IOException v;
java.lang.RuntimeException v;
java.io.File v, v, v, v, v;
java.lang.Object v, v, v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String execute(java.lang.String)>("stop");
v = new java.io.StringWriter;
specialinvoke v.<java.io.StringWriter: void <init>()>();
v = new java.io.PrintWriter;
specialinvoke v.<java.io.PrintWriter: void <init>(java.io.Writer)>(v);
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.List output>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.openjdk.jmh.profile.AsyncProfiler$1: int[] $SwitchMap$org$openjdk$jmh$profile$AsyncProfiler$OutputType>;
v = virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$OutputType: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
default: goto label;
};
label:
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outputFile(java.lang.String)>("summary-%s.txt");
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean isVersion1x>;
if v == 0 goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: int flat>;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: int traces>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("summary,flat=\u,traces=\u0001");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void dump(java.io.File,java.lang.String)>(v, v);
goto label;
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: int flat>;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: int traces>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("flat=\u,traces=\u0001");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void dump(java.io.File,java.lang.String)>(v, v);
label:
v = staticinvoke <org.openjdk.jmh.util.FileUtils: java.util.Collection readAllLines(java.io.File)>(v);
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outputFile(java.lang.String)>("collapsed-%s.csv");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void dump(java.io.File,java.lang.String)>(v, "collapsed");
goto label;
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean isVersion1x>;
if v == 0 goto label;
v = "svg";
goto label;
label:
v = "html";
label:
v = v;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$Direction direction>;
v = <org.openjdk.jmh.profile.AsyncProfiler$Direction: org.openjdk.jmh.profile.AsyncProfiler$Direction both>;
if v == v goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$Direction direction>;
v = <org.openjdk.jmh.profile.AsyncProfiler$Direction: org.openjdk.jmh.profile.AsyncProfiler$Direction forward>;
if v != v goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("flame-%s-forward.\u0001");
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outputFile(java.lang.String)>(v);
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void dump(java.io.File,java.lang.String)>(v, "flamegraph");
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$Direction direction>;
v = <org.openjdk.jmh.profile.AsyncProfiler$Direction: org.openjdk.jmh.profile.AsyncProfiler$Direction both>;
if v == v goto label;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$Direction direction>;
v = <org.openjdk.jmh.profile.AsyncProfiler$Direction: org.openjdk.jmh.profile.AsyncProfiler$Direction reverse>;
if v != v goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("flame-%s-reverse.\u0001");
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outputFile(java.lang.String)>(v);
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void dump(java.io.File,java.lang.String)>(v, "flamegraph,reverse");
goto label;
label:
v = specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File outputFile(java.lang.String)>("tree-%s.html");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: void dump(java.io.File,java.lang.String)>(v, "tree");
goto label;
label:
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("Async profiler results:");
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.LinkedHashSet generated>;
v = virtualinvoke v.<java.util.LinkedHashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>("  ");
v = virtualinvoke v.<java.io.File: java.lang.String getPath()>();
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
goto label;
label:
virtualinvoke v.<java.io.PrintWriter: void flush()>();
virtualinvoke v.<java.io.PrintWriter: void close()>();
v = new org.openjdk.jmh.results.TextResult;
v = virtualinvoke v.<java.io.StringWriter: java.lang.String toString()>();
specialinvoke v.<org.openjdk.jmh.results.TextResult: void <init>(java.lang.String,java.lang.String)>(v, "async");
return v;
catch java.io.IOException from label to label with label;
}
private void dump(java.io.File, java.lang.String)
{
org.openjdk.jmh.profile.AsyncProfiler v;
java.lang.String v, v, v, v;
java.io.File v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String profilerConfig>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u,\u,file=\u0001");
specialinvoke v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String execute(java.lang.String)>(v);
return;
}
private java.io.File outputFile(java.lang.String)
{
java.lang.Object[] v;
java.io.File v, v;
org.openjdk.jmh.profile.AsyncProfiler v;
java.lang.String v, v, v;
java.util.LinkedHashSet v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: java.lang.String;
v = new java.io.File;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.io.File trialOutDir>;
v = newarray (java.lang.Object)[1];
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.lang.String outputFilePrefix>;
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = v.<org.openjdk.jmh.profile.AsyncProfiler: java.util.LinkedHashSet generated>;
virtualinvoke v.<java.util.LinkedHashSet: boolean add(java.lang.Object)>(v);
return v;
}
private java.lang.String execute(java.lang.String)
{
java.io.PrintStream v;
java.io.IOException v;
java.lang.RuntimeException v;
org.openjdk.jmh.profile.AsyncProfiler v;
java.lang.String v, v, v;
org.openjdk.jmh.profile.AsyncProfiler$JavaApi v;
boolean v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: java.lang.String;
v = v.<org.openjdk.jmh.profile.AsyncProfiler: boolean verbose>;
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("[async-profiler] \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
v = v.<org.openjdk.jmh.profile.AsyncProfiler: org.openjdk.jmh.profile.AsyncProfiler$JavaApi instance>;
v = virtualinvoke v.<org.openjdk.jmh.profile.AsyncProfiler$JavaApi: java.lang.String execute(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
}
public java.util.Collection addJVMInvokeOptions(org.openjdk.jmh.infra.BenchmarkParams)
{
java.util.List v;
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.profile.AsyncProfiler v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
}
public java.util.Collection addJVMOptions(org.openjdk.jmh.infra.BenchmarkParams)
{
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.profile.AsyncProfiler v;
java.util.ArrayList v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-XX:+UnlockDiagnosticVMOptions");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-XX:+DebugNonSafepoints");
return v;
}
public void beforeTrial(org.openjdk.jmh.infra.BenchmarkParams)
{
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.profile.AsyncProfiler v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
return;
}
public java.util.Collection afterTrial(org.openjdk.jmh.results.BenchmarkResult, long, java.io.File, java.io.File)
{
java.util.List v;
org.openjdk.jmh.profile.AsyncProfiler v;
long v;
org.openjdk.jmh.results.BenchmarkResult v;
java.io.File v, v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
v := @parameter: org.openjdk.jmh.results.BenchmarkResult;
v := @parameter: long;
v := @parameter: java.io.File;
v := @parameter: java.io.File;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
}
public boolean allowPrintOut()
{
org.openjdk.jmh.profile.AsyncProfiler v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
return 1;
}
public boolean allowPrintErr()
{
org.openjdk.jmh.profile.AsyncProfiler v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
return 1;
}
public java.lang.String getDescription()
{
org.openjdk.jmh.profile.AsyncProfiler v;
v := @this: org.openjdk.jmh.profile.AsyncProfiler;
return "async-profiler profiler provider.";
}
}