public final class org.openjdk.jmh.profile.JavaFlightRecorderProfiler extends java.lang.Object implements org.openjdk.jmh.profile.ExternalProfiler, org.openjdk.jmh.profile.InternalProfiler
{
private final boolean verbose;
private final java.io.File outDir;
private final boolean debugNonSafePoints;
private final java.lang.String configName;
private final java.util.Collection flightRecorderOptions;
private org.openjdk.jmh.profile.JavaFlightRecorderProfiler$PostProcessor postProcessor;
private boolean measurementStarted;
private int measurementIterationCount;
private java.lang.String profileName;
private final java.util.List generated;
public void <init>(java.lang.String) throws org.openjdk.jmh.profile.ProfilerException
{
java.lang.Thread v;
java.lang.Boolean[] v, v;
joptsimple.ArgumentAcceptingOptionSpec v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.ClassLoader v;
joptsimple.OptionSpecBuilder v, v, v, v, v, v;
java.lang.Object[] v;
java.lang.ReflectiveOperationException v;
java.lang.reflect.Constructor v;
java.util.ArrayList v, v;
java.lang.String v, v, v, v, v;
java.lang.Class[] v;
java.io.File v, v;
org.openjdk.jmh.profile.ProfilerOptionFormatter v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
joptsimple.OptionParser v;
boolean v, v, v, v, v;
joptsimple.OptionSet v;
java.util.Collection v;
java.lang.String[] v;
joptsimple.OptionException v;
java.lang.Boolean v, v;
org.openjdk.jmh.profile.ProfilerException v, v;
java.lang.Class v;
java.lang.Object v, v, v, v, v, v, v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.Collection flightRecorderOptions> = v;
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: org.openjdk.jmh.profile.JavaFlightRecorderProfiler$PostProcessor postProcessor> = null;
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: boolean measurementStarted> = 0;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.List 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)>("jfr");
virtualinvoke v.<joptsimple.OptionParser: void formatHelpWith(joptsimple.HelpFormatter)>(v);
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)>("configName", "Name of a predefined Flight Recorder configuration, e.g. profile or default");
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)>("name");
v = newarray (java.lang.String)[0];
v = virtualinvoke v.<joptsimple.ArgumentAcceptingOptionSpec: joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[])>("profile", v);
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("debugNonSafePoints", "Gather cpu samples asynchronously, rather than at the subsequent safepoint.");
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.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
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.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("stackDepth", "Maximum number of stack frames collected for each event.");
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 = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class)>(class "Lorg/openjdk/jmh/profile/JavaFlightRecorderProfiler$PostProcessor;") <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[])>("The fully qualified name of a class that implements \u. This must have a public, no-argument constructor.");
v = virtualinvoke v.<joptsimple.OptionParser: joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String)>("postProcessor", v);
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)>("fqcn");
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 = staticinvoke <org.openjdk.jmh.profile.ProfilerUtils: joptsimple.OptionSet parseInitLine(java.lang.String,joptsimple.OptionParser)>(v, 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.JavaFlightRecorderProfiler: boolean debugNonSafePoints> = v;
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.lang.String configName> = v;
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.Collection flightRecorderOptions>;
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("stackdepth=\u0001");
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(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.JavaFlightRecorderProfiler: boolean verbose> = 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.JavaFlightRecorderProfiler: 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.JavaFlightRecorderProfiler: java.io.File outDir> = v;
label:
v = virtualinvoke v.<joptsimple.OptionSet: boolean has(joptsimple.OptionSpec)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = interfaceinvoke v.<joptsimple.OptionSpec: java.lang.Object value(joptsimple.OptionSet)>(v);
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: org.openjdk.jmh.profile.JavaFlightRecorderProfiler$PostProcessor postProcessor> = 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 := @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.ReflectiveOperationException 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.util.List v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.infra.IterationParams v;
java.lang.String v, v, v, v;
org.openjdk.jmh.runner.IterationType v, v;
boolean v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v := @parameter: org.openjdk.jmh.infra.IterationParams;
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.JavaFlightRecorderProfiler: boolean measurementStarted>;
if v != 0 goto label;
v = virtualinvoke v.<org.openjdk.jmh.infra.BenchmarkParams: java.lang.String id()>();
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.lang.String profileName> = v;
v = virtualinvoke v.<org.openjdk.jmh.infra.BenchmarkParams: java.lang.String getJvm()>();
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.lang.String configName>;
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[])>("settings=\u0001");
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
specialinvoke v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: void execute(java.lang.String,java.lang.String,java.util.Collection)>(v, "JFR.start", v);
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: boolean measurementStarted> = 1;
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.profile.JavaFlightRecorderProfiler$PostProcessor v, v;
org.openjdk.jmh.results.IterationResult v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
org.openjdk.jmh.infra.BenchmarkParams v;
int v, v, v, v;
java.lang.String v, v, v;
org.openjdk.jmh.runner.IterationType v, v;
java.io.File v, v;
java.util.List v, v, v, v, v, v;
org.openjdk.jmh.infra.IterationParams v;
org.openjdk.jmh.results.TextResult v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
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.JavaFlightRecorderProfiler: int measurementIterationCount>;
v = v + 1;
v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: int measurementIterationCount> = v;
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: int measurementIterationCount>;
v = virtualinvoke v.<org.openjdk.jmh.infra.IterationParams: int getCount()>();
if v != v goto label;
v = specialinvoke v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.io.File createTrialOutDir(org.openjdk.jmh.infra.BenchmarkParams)>(v);
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, "profile.jfr");
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
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[])>("filename=\u0001");
v = virtualinvoke v.<org.openjdk.jmh.infra.BenchmarkParams: java.lang.String getJvm()>();
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
specialinvoke v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: void execute(java.lang.String,java.lang.String,java.util.Collection)>(v, "JFR.stop", v);
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.List generated>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: org.openjdk.jmh.profile.JavaFlightRecorderProfiler$PostProcessor postProcessor>;
if v == null goto label;
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.List generated>;
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: org.openjdk.jmh.profile.JavaFlightRecorderProfiler$PostProcessor postProcessor>;
v = interfaceinvoke v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler$PostProcessor: java.util.List postProcess(org.openjdk.jmh.infra.BenchmarkParams,java.io.File)>(v, v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
v = specialinvoke v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: org.openjdk.jmh.results.TextResult result()>();
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 org.openjdk.jmh.results.TextResult result()
{
java.io.PrintWriter v;
java.util.Iterator v;
java.io.StringWriter v;
java.util.List v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
java.lang.Object v;
org.openjdk.jmh.results.TextResult v;
java.lang.String v, v;
boolean v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
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);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("JFR profiler results:");
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.List generated>;
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()>();
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, "jfr");
return v;
}
private java.io.File createTrialOutDir(org.openjdk.jmh.infra.BenchmarkParams)
{
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
org.openjdk.jmh.infra.BenchmarkParams v;
java.lang.String v;
java.io.File v, v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v = virtualinvoke v.<org.openjdk.jmh.infra.BenchmarkParams: java.lang.String id()>();
v = new java.io.File;
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.io.File outDir>;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
virtualinvoke v.<java.io.File: boolean mkdirs()>();
return v;
}
private void execute(java.lang.String, java.lang.String, java.util.Collection)
{
java.lang.Object[] v;
java.lang.String[] v;
long v;
java.util.ArrayList v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
boolean v, v;
java.io.PrintStream v;
java.util.Collection v, v;
java.lang.RuntimeException v;
java.io.File v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Collection;
v = staticinvoke <org.openjdk.jmh.util.Utils: long getPid()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = specialinvoke v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.io.File findJcmd(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.lang.String profileName>;
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[])>("name=\u0001");
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<java.util.ArrayList: boolean addAll(java.util.Collection)>(v);
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: boolean verbose>;
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList)>(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[])>("[jfr] \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
v = newarray (java.lang.String)[0];
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = staticinvoke <org.openjdk.jmh.util.Utils: java.util.Collection tryWith(java.lang.String[])>(v);
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v != 0 goto label;
v = new java.lang.RuntimeException;
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
v = staticinvoke <org.openjdk.jmh.util.Utils: java.lang.String join(java.util.Collection,java.lang.String)>(v, v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList,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[])>("Error executing: \u0001\u0001\u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private java.io.File findJcmd(java.lang.String)
{
java.lang.IllegalStateException v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v;
java.io.File v, v, v, v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = new java.io.File;
v = staticinvoke <org.openjdk.jmh.util.Utils: boolean isWindows()>();
if v == 0 goto label;
v = ".exe";
goto label;
label:
v = "";
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[])>("jcmd\u0001");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
return v;
label:
v = <java.io.File: java.lang.String separator>;
v = new java.io.File;
v = staticinvoke <org.openjdk.jmh.util.Utils: boolean isWindows()>();
if v == 0 goto label;
v = ".exe";
goto label;
label:
v = "";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, 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..\u0001bin\u0001jcmd\u0001");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
return v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot find jcmd anywhere");
throw v;
}
public java.util.Collection addJVMInvokeOptions(org.openjdk.jmh.infra.BenchmarkParams)
{
java.util.List v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
org.openjdk.jmh.infra.BenchmarkParams v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
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)
{
java.util.Collection v, v;
java.util.ArrayList v;
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
org.openjdk.jmh.infra.BenchmarkParams v;
int v;
java.lang.String v, v, v;
boolean v, v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: boolean debugNonSafePoints>;
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-XX:+UnlockDiagnosticVMOptions");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-XX:+DebugNonSafepoints");
label:
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.Collection flightRecorderOptions>;
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.openjdk.jmh.profile.JavaFlightRecorderProfiler: java.util.Collection flightRecorderOptions>;
v = staticinvoke <org.openjdk.jmh.util.Utils: java.lang.String join(java.util.Collection,java.lang.String)>(v, ",");
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[])>("-XX:FlightRecorderOptions=\u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.openjdk.jmh.infra.BenchmarkParams: java.lang.String getJdkVersion()>();
v = staticinvoke <org.openjdk.jmh.util.JDKVersion: int parseMajor(java.lang.String)>(v);
if v >= 13 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-XX:+FlightRecorder");
label:
return v;
}
public void beforeTrial(org.openjdk.jmh.infra.BenchmarkParams)
{
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
org.openjdk.jmh.infra.BenchmarkParams v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
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.JavaFlightRecorderProfiler v;
long v;
org.openjdk.jmh.results.BenchmarkResult v;
java.io.File v, v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
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.JavaFlightRecorderProfiler v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
return 1;
}
public boolean allowPrintErr()
{
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
return 1;
}
public java.lang.String getDescription()
{
org.openjdk.jmh.profile.JavaFlightRecorderProfiler v;
v := @this: org.openjdk.jmh.profile.JavaFlightRecorderProfiler;
return "Java Flight Recorder profiler";
}
}