public class org.apache.hadoop.hive.common.GcTimeMonitor extends java.lang.Thread
{
private final long maxGcTimePercentage;
private final long observationWindowNanos;
private final long sleepIntervalMs;
private final org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler alertHandler;
private final org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf;
private int bufSize;
private int startIdx;
private int endIdx;
private long startTimeNanos;
private final org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData;
private volatile boolean shouldRun;
public void <init>(long, long, int, org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler)
{
long v, v, v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor v;
byte v, v, v;
int v, v, v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData v;
java.lang.String v;
boolean v, v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$GcData v;
org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler v;
v := @this: org.apache.hadoop.hive.common.GcTimeMonitor;
v := @parameter: long;
v := @parameter: long;
v := @parameter: int;
v := @parameter: org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler;
specialinvoke v.<java.lang.Thread: void <init>()>();
v = new org.apache.hadoop.hive.common.GcTimeMonitor$GcData;
specialinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcData: void <init>()>();
v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData> = v;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: boolean shouldRun> = 1;
v = v cmp 0L;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
v = v cmp 0L;
if v <= 0 goto label;
v = v cmp v;
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
if v < 0 goto label;
if v > 100 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
v = v * 1000000L;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: long observationWindowNanos> = v;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: long sleepIntervalMs> = v;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: long maxGcTimePercentage> = v;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler alertHandler> = v;
v = v / v;
v = v + 2L;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize> = v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
if v > 131072 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
v = newarray (org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData)[v];
v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf> = v;
v = 0;
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
if v >= v goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = new org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData;
specialinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: void <init>()>();
v[v] = v;
v = v + 1;
goto label;
label:
virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor: void setDaemon(boolean)>(1);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,int)>(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[])>("GcTimeMonitor obsWindow = \u, sleepInterval = \u, maxGcTimePerc = \u0001");
virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor: void setName(java.lang.String)>(v);
return;
}
public void run()
{
long v, v, v, v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor v;
byte v;
int v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData v;
boolean v;
org.apache.hadoop.hive.common.GcTimeMonitor$GcData v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] v;
java.lang.InterruptedException v;
org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler v, v;
v := @this: org.apache.hadoop.hive.common.GcTimeMonitor;
v = staticinvoke <java.lang.System: long nanoTime()>();
v.<org.apache.hadoop.hive.common.GcTimeMonitor: long startTimeNanos> = v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v[v];
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long startTimeNanos>;
virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: void setValues(long,long)>(v, 0L);
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: boolean shouldRun>;
if v == 0 goto label;
v = staticinvoke <java.lang.System: long nanoTime()>();
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long sleepIntervalMs>;
staticinvoke <java.lang.Thread: void sleep(long)>(v);
label:
goto label;
label:
v := @caughtexception;
return;
label:
v = staticinvoke <java.lang.System: long nanoTime()>();
specialinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor: void calculateGCTimePercentageWithinObservedInterval(long,long)>(v, v);
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler alertHandler>;
if v == null goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcData: int gcTimePercentage>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long maxGcTimePercentage>;
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler alertHandler>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData>;
v = virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcData: org.apache.hadoop.hive.common.GcTimeMonitor$GcData clone()>();
interfaceinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler: void alert(org.apache.hadoop.hive.common.GcTimeMonitor$GcData)>(v);
goto label;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void shutdown()
{
org.apache.hadoop.hive.common.GcTimeMonitor v;
v := @this: org.apache.hadoop.hive.common.GcTimeMonitor;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: boolean shouldRun> = 0;
return;
}
public org.apache.hadoop.hive.common.GcTimeMonitor$GcData getLatestGcData()
{
org.apache.hadoop.hive.common.GcTimeMonitor v;
org.apache.hadoop.hive.common.GcTimeMonitor$GcData v, v;
v := @this: org.apache.hadoop.hive.common.GcTimeMonitor;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData>;
v = virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcData: org.apache.hadoop.hive.common.GcTimeMonitor$GcData clone()>();
return v;
}
private void calculateGCTimePercentageWithinObservedInterval(long, long)
{
byte v;
org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$GcData v, v;
org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] v, v, v, v, v;
v := @this: org.apache.hadoop.hive.common.GcTimeMonitor;
v := @parameter: long;
v := @parameter: long;
v = v - v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long sleepIntervalMs>;
v = v * 1000000L;
v = v - v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcData: long totalGcTimeNanos>;
v = v + v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long startTimeNanos>;
v = v - v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int endIdx>;
v = v + 1;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
v = v % v;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: int endIdx> = v;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int endIdx>;
v = v[v];
virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: void setValues(long,long)>(v, v);
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long observationWindowNanos>;
v = v - v;
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v[v];
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: long tsNanos>;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int endIdx>;
if v == v goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v + 1;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
v = v % v;
v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx> = v;
goto label;
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v[v];
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: long gcPauseNanos>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v[v];
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: long tsNanos>;
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int endIdx>;
if v == v goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int startIdx>;
v = v + 1;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
v = v % v;
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int endIdx>;
if v == v goto label;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData[] gcDataBuf>;
v = v[v];
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor$TsAndData: long gcPauseNanos>;
v = v + v;
v = v + 1;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: int bufSize>;
v = v % v;
goto label;
label:
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: org.apache.hadoop.hive.common.GcTimeMonitor$GcData curData>;
v = v * 100L;
v = v.<org.apache.hadoop.hive.common.GcTimeMonitor: long observationWindowNanos>;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = v / v;
specialinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$GcData: void update(long,long,int)>(v, v, v);
return;
}
public static void main(java.lang.String[]) throws java.lang.Exception
{
java.io.PrintStream v;
org.apache.hadoop.hive.common.GcTimeMonitor$1 v;
java.lang.String[] v;
org.apache.hadoop.hive.common.GcTimeMonitor v;
java.util.ArrayList v;
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String[];
v = new org.apache.hadoop.hive.common.GcTimeMonitor;
v = new org.apache.hadoop.hive.common.GcTimeMonitor$1;
specialinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor$1: void <init>()>();
specialinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor: void <init>(long,long,int,org.apache.hadoop.hive.common.GcTimeMonitor$GcTimeAlertHandler)>(20000L, 500L, 20, v);
virtualinvoke v.<org.apache.hadoop.hive.common.GcTimeMonitor: void start()>();
v = staticinvoke <com.google.common.collect.Lists: java.util.ArrayList newArrayList()>();
v = 0;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("This is a long string to fill memory quickly \u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v % 100000;
if v != 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("Added \u strings");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
staticinvoke <java.lang.Thread: void sleep(long)>(100L);
label:
v = v + 1;
goto label;
}
}