public class org.openjdk.jmh.profile.GCProfiler extends java.lang.Object implements org.openjdk.jmh.profile.InternalProfiler
{
private long beforeTime;
private long beforeGCCount;
private long beforeGCTime;
private org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot beforeAllocated;
public void <init>()
{
org.openjdk.jmh.profile.GCProfiler v;
v := @this: org.openjdk.jmh.profile.GCProfiler;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public java.lang.String getDescription()
{
org.openjdk.jmh.profile.GCProfiler v;
v := @this: org.openjdk.jmh.profile.GCProfiler;
return "GC profiling via standard MBeans";
}
public void beforeIteration(org.openjdk.jmh.infra.BenchmarkParams, org.openjdk.jmh.infra.IterationParams)
{
java.util.Iterator v;
org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot v;
long v, v, v, v, v;
java.util.List v;
org.openjdk.jmh.infra.BenchmarkParams v;
org.openjdk.jmh.infra.IterationParams v;
org.openjdk.jmh.profile.GCProfiler v;
java.lang.Object v;
boolean v;
v := @this: org.openjdk.jmh.profile.GCProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v := @parameter: org.openjdk.jmh.infra.IterationParams;
staticinvoke <org.openjdk.jmh.profile.GCProfiler$VMSupport: void startChurnProfile()>();
v = 0L;
v = 0L;
v = staticinvoke <java.lang.management.ManagementFactory: java.util.List getGarbageCollectorMXBeans()>();
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 = interfaceinvoke v.<java.lang.management.GarbageCollectorMXBean: long getCollectionCount()>();
v = v + v;
v = interfaceinvoke v.<java.lang.management.GarbageCollectorMXBean: long getCollectionTime()>();
v = v + v;
goto label;
label:
v.<org.openjdk.jmh.profile.GCProfiler: long beforeGCCount> = v;
v.<org.openjdk.jmh.profile.GCProfiler: long beforeGCTime> = v;
v = staticinvoke <org.openjdk.jmh.profile.GCProfiler$VMSupport: org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot getSnapshot()>();
v.<org.openjdk.jmh.profile.GCProfiler: org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot beforeAllocated> = v;
v = staticinvoke <java.lang.System: long nanoTime()>();
v.<org.openjdk.jmh.profile.GCProfiler: long beforeTime> = v;
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.GCProfiler$HotspotAllocationSnapshot v, v, v, v;
org.openjdk.jmh.results.IterationResultMetaData v, v;
byte v, v, v, v, v, v;
org.openjdk.jmh.results.ScalarResult v, v, v, v, v, v, v;
org.openjdk.jmh.util.Multiset v;
org.openjdk.jmh.infra.IterationParams v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.ArrayList v;
org.openjdk.jmh.infra.BenchmarkParams v;
java.lang.String v, v, v;
org.openjdk.jmh.results.IterationResult v;
org.openjdk.jmh.results.AggregationPolicy v, v, v, v, v, v, v;
boolean v, v;
java.util.Collection v;
java.util.List v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v;
java.util.concurrent.TimeUnit v, v;
org.openjdk.jmh.profile.GCProfiler v;
java.lang.Object v, v;
v := @this: org.openjdk.jmh.profile.GCProfiler;
v := @parameter: org.openjdk.jmh.infra.BenchmarkParams;
v := @parameter: org.openjdk.jmh.infra.IterationParams;
v := @parameter: org.openjdk.jmh.results.IterationResult;
staticinvoke <org.openjdk.jmh.profile.GCProfiler$VMSupport: void finishChurnProfile()>();
v = staticinvoke <java.lang.System: long nanoTime()>();
v = 0L;
v = 0L;
v = staticinvoke <java.lang.management.ManagementFactory: java.util.List getGarbageCollectorMXBeans()>();
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 = interfaceinvoke v.<java.lang.management.GarbageCollectorMXBean: long getCollectionCount()>();
v = v + v;
v = interfaceinvoke v.<java.lang.management.GarbageCollectorMXBean: long getCollectionTime()>();
v = v + v;
goto label;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.openjdk.jmh.profile.GCProfiler: org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot beforeAllocated>;
v = <org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot: org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot EMPTY>;
if v != v goto label;
v = new org.openjdk.jmh.results.ScalarResult;
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy AVG>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>("\u00b7gc.alloc.rate", #NaN, "MB/sec", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = staticinvoke <org.openjdk.jmh.profile.GCProfiler$VMSupport: org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot getSnapshot()>();
v = v.<org.openjdk.jmh.profile.GCProfiler: org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot beforeAllocated>;
v = virtualinvoke v.<org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot: long subtract(org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot)>(v);
v = new org.openjdk.jmh.results.ScalarResult;
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeTime>;
v = v cmp v;
if v == 0 goto label;
v = 1.0 * v;
v = v / 1024.0;
v = v / 1024.0;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = v * v;
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeTime>;
v = v - v;
v = v / v;
goto label;
label:
v = #NaN;
label:
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy AVG>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>("\u00b7gc.alloc.rate", v, "MB/sec", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v cmp 0L;
if v == 0 goto label;
v = virtualinvoke v.<org.openjdk.jmh.results.IterationResult: org.openjdk.jmh.results.IterationResultMetaData getMetadata()>();
v = virtualinvoke v.<org.openjdk.jmh.results.IterationResultMetaData: long getAllOps()>();
v = new org.openjdk.jmh.results.ScalarResult;
v = v cmp 0L;
if v == 0 goto label;
v = 1.0 * v;
v = v / v;
goto label;
label:
v = #NaN;
label:
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy AVG>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>("\u00b7gc.alloc.rate.norm", v, "B/op", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = new org.openjdk.jmh.results.ScalarResult;
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeGCCount>;
v = v - v;
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy SUM>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>("\u00b7gc.count", v, "counts", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeGCCount>;
v = v cmp v;
if v != 0 goto label;
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeGCTime>;
v = v cmp v;
if v == 0 goto label;
label:
v = new org.openjdk.jmh.results.ScalarResult;
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeGCTime>;
v = v - v;
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy SUM>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>("\u00b7gc.time", v, "ms", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = staticinvoke <org.openjdk.jmh.profile.GCProfiler$VMSupport: org.openjdk.jmh.util.Multiset getChurn()>();
v = interfaceinvoke v.<org.openjdk.jmh.util.Multiset: java.util.Collection keys()>();
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()>();
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeTime>;
v = v cmp v;
if v == 0 goto label;
v = interfaceinvoke v.<org.openjdk.jmh.util.Multiset: long count(java.lang.Object)>(v);
v = 1.0 * v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = v * v;
v = v.<org.openjdk.jmh.profile.GCProfiler: long beforeTime>;
v = v - v;
v = v / v;
v = v / 1024.0;
v = v / 1024.0;
goto label;
label:
v = #NaN;
label:
v = interfaceinvoke v.<org.openjdk.jmh.util.Multiset: long count(java.lang.Object)>(v);
v = 1.0 * v;
v = virtualinvoke v.<org.openjdk.jmh.results.IterationResult: org.openjdk.jmh.results.IterationResultMetaData getMetadata()>();
v = virtualinvoke v.<org.openjdk.jmh.results.IterationResultMetaData: long getAllOps()>();
v = v / v;
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>(" ", "_");
v = new org.openjdk.jmh.results.ScalarResult;
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[])>("\u00b7gc.churn.\u0001");
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy AVG>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>(v, v, "MB/sec", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = new org.openjdk.jmh.results.ScalarResult;
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[])>("\u00b7gc.churn.\u.norm");
v = <org.openjdk.jmh.results.AggregationPolicy: org.openjdk.jmh.results.AggregationPolicy AVG>;
specialinvoke v.<org.openjdk.jmh.results.ScalarResult: void <init>(java.lang.String,double,java.lang.String,org.openjdk.jmh.results.AggregationPolicy)>(v, v, "B/op", v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
}