SensorSupportBenchmark class
Пакет: com.hypixel.hytale.server.npc.util
Файл: com/hypixel/hytale/server/npc/util/SensorSupportBenchmark.java
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
char |
DEFAULT_COLUMN_SEPARATOR |
|
long |
var10 |
|
long |
var12 |
|
|
var12 |
|
long |
var14 |
|
long |
var16 |
|
long |
var18 |
|
long |
var8 |
Методы (19)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
collectEntityListvoid collectEntityList(long var1, double var3, double var5, double var7, int var9) |
public |
void |
collectFriendlyBlockingTestvoid collectFriendlyBlockingTest(boolean var1) |
public |
void |
collectInverseLosTestvoid collectInverseLosTest(boolean var1) |
public |
void |
collectLosTestvoid collectLosTest(boolean var1, long var2) |
public |
void |
collectPlayerListvoid collectPlayerList(long var1, double var3, double var5, double var7, int var9) |
public |
void |
formatHeaderLoSvoid formatHeaderLoS(@Nonnull Formatter var1) |
public |
void |
formatHeaderUpdateTimesvoid formatHeaderUpdateTimes(@Nonnull Formatter var1) |
public |
boolean |
formatValuesLoSboolean formatValuesLoS(@Nonnull Formatter var1) |
public |
void |
formatValuesUpdateTimevoid formatValuesUpdateTime(@Nonnull Formatter var1,
String var2,
@Nonnull TimeRecorder var3,
@Nonnull DiscreteValueRecorder var4,
@Nonnull DiscreteValueRecorder var5,
@Nonnull DiscreteValueRecorder var6,
@Nonnull DiscreteValueRecorder var7) |
public |
void |
formatValuesUpdateTimeEntityvoid formatValuesUpdateTimeEntity(@Nonnull Formatter var1) |
public |
void |
formatValuesUpdateTimePlayervoid formatValuesUpdateTimePlayer(@Nonnull Formatter var1) |
public |
boolean |
haveUpdateTimesboolean haveUpdateTimes() |
|
|
if if(var1) |
|
|
if if(var1) |
|
|
if if(var1) |
|
|
if if(this.losTestTick > 0L) |
|
|
if if(this.inverseLosTestTick > 0L) |
|
|
if if(this.friendlyBlockingTestTick > 0L) |
public |
void |
tickDonevoid tickDone() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.util;
class="kw">import com.hypixel.hytale.common.benchmark.ContinuousValueRecorder;
class="kw">import com.hypixel.hytale.common.benchmark.DiscreteValueRecorder;
class="kw">import com.hypixel.hytale.common.benchmark.TimeRecorder;
class="kw">import com.hypixel.hytale.common.util.FormatUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import java.util.Formatter;
class="kw">import javax.annotation.Nonnull;
class="kw">public class SensorSupportBenchmark {
class="kw">public class="kw">static class="kw">final char DEFAULT_COLUMN_SEPARATOR = '|';
class="kw">public class="kw">static class="kw">final String DEFAULT_COLUMN_FORMAT_HEADER = "|%-6.6s";
class="kw">public class="kw">static class="kw">final String DEFAULT_COLUMN_FORMAT_VALUE = "|%6.6s";
class="kw">public class="kw">static class="kw">final String[] DEFAULT_COLUMNS_UPDATE = new String[]{
"KIND", "COUNT", "G-AVG", "G-MIN", "G-MAX", "L-AVG", "L-MAX", "SD-MAX", "UD-MAX", "AD-MAX"
};
class="kw">public class="kw">static class="kw">final String[] DEFAULT_COLUMNS_LOS = new String[]{
"L-CNT", "L-AVG", "L-MAX", "L-HIT%", "T-CNT", "T-AVG", "T-MIN", "T-MAX", "I-CNT", "I-AVG", "I-MAX", "I-HIT%", "F-CNT", "F-AVG", "F-MAX", "F-HIT%"
};
@Nonnull
class="kw">protected TimeRecorder playerGetTime = new TimeRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder playerDistance = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder playerDistanceSorted = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder playerDistanceAvoidance = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder playerCount = new DiscreteValueRecorder();
@Nonnull
class="kw">protected TimeRecorder entityGetTime = new TimeRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder entityDistance = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder entityDistanceSorted = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder entityDistanceAvoidance = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder entityCount = new DiscreteValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder losTest = new DiscreteValueRecorder();
@Nonnull
class="kw">protected ContinuousValueRecorder losCacheHit = new ContinuousValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder inverseLosTest = new DiscreteValueRecorder();
@Nonnull
class="kw">protected ContinuousValueRecorder inverseLosCacheHit = new ContinuousValueRecorder();
@Nonnull
class="kw">protected DiscreteValueRecorder friendlyBlockingTest = new DiscreteValueRecorder();
@Nonnull
class="kw">protected ContinuousValueRecorder friendlyBlockingCacheHit = new ContinuousValueRecorder();
@Nonnull
class="kw">protected TimeRecorder losTestTime = new TimeRecorder();
class="kw">protected long losTestTick;
class="kw">protected long losCacheHitTick;
class="kw">protected long inverseLosTestTick;
class="kw">protected long inverseLosCacheHitTick;
class="kw">protected long friendlyBlockingTestTick;
class="kw">protected long friendlyBlockingCacheHitTick;
class="kw">public SensorSupportBenchmark() {
}
class="kw">public void collectPlayerList(long var1, double var3, double var5, double var7, int var9) {
this.playerGetTime.recordNanos(var1);
this.playerDistance.record(MathUtil.fastCeil(var5));
this.playerDistanceSorted.record(MathUtil.fastCeil(var3));
this.playerDistanceAvoidance.record(MathUtil.fastCeil(var7));
this.playerCount.record(var9);
}
class="kw">public void collectEntityList(long var1, double var3, double var5, double var7, int var9) {
this.entityGetTime.recordNanos(var1);
this.entityDistance.record(MathUtil.fastCeil(var5));
this.entityDistanceSorted.record(MathUtil.fastCeil(var3));
this.entityDistanceAvoidance.record(MathUtil.fastCeil(var7));
this.entityCount.record(var9);
}
class="kw">public void collectLosTest(boolean var1, long var2) {
this.losTestTick++;
if (var1) {
this.losCacheHitTick++;
} else {
this.losTestTime.recordNanos(var2);
}
}
class="kw">public void collectInverseLosTest(boolean var1) {
this.inverseLosTestTick++;
if (var1) {
this.inverseLosCacheHitTick++;
}
}
class="kw">public void collectFriendlyBlockingTest(boolean var1) {
this.friendlyBlockingTestTick++;
if (var1) {
this.friendlyBlockingCacheHitTick++;
}
}
class="kw">public void tickDone() {
this.losTest.record(this.losTestTick);
if (this.losTestTick > 0L) {
this.losCacheHit.record((double)this.losCacheHitTick / this.losTestTick);
}
this.losTestTick = 0L;
this.losCacheHitTick = 0L;
this.inverseLosTest.record(this.inverseLosTestTick);
if (this.inverseLosTestTick > 0L) {
this.inverseLosCacheHit.record((double)this.inverseLosCacheHitTick / this.inverseLosTestTick);
}
this.inverseLosTestTick = 0L;
this.inverseLosCacheHitTick = 0L;
this.friendlyBlockingTest.record(this.friendlyBlockingTestTick);
if (this.friendlyBlockingTestTick > 0L) {
this.friendlyBlockingCacheHit.record((double)this.friendlyBlockingCacheHitTick / this.friendlyBlockingTestTick);
}
this.friendlyBlockingTestTick = 0L;
this.friendlyBlockingCacheHitTick = 0L;
}
class="kw">public void formatHeaderUpdateTimes(@Nonnull Formatter var1) {
FormatUtil.formatArray(var1, "|%-6.6s", DEFAULT_COLUMNS_UPDATE);
}
class="kw">public void formatValuesUpdateTimePlayer(@Nonnull Formatter var1) {
this.formatValuesUpdateTime(
var1, "Player", this.playerGetTime, this.playerCount, this.playerDistanceSorted, this.playerDistance, this.playerDistanceAvoidance
);
}
class="kw">public void formatValuesUpdateTimeEntity(@Nonnull Formatter var1) {
this.formatValuesUpdateTime(
var1, "Entity", this.entityGetTime, this.entityCount, this.entityDistanceSorted, this.entityDistance, this.entityDistanceAvoidance
);
}
class="kw">public void formatValuesUpdateTime(
@Nonnull Formatter var1,
String var2,
@Nonnull TimeRecorder var3,
@Nonnull DiscreteValueRecorder var4,
@Nonnull DiscreteValueRecorder var5,
@Nonnull DiscreteValueRecorder var6,
@Nonnull DiscreteValueRecorder var7
) {
long var8 = var6.getMaxValue();
long var10 = var6.getMinValue();
long var12 = var5.getMaxValue();
long var14 = var5.getMinValue();
long var16 = var7.getMaxValue();
long var18 = var7.getMinValue();
var1.format("|%-6.6s", var2);
FormatUtil.formatArgs(
var1,
"|%6.6s",
var3.getCount(),
TimeRecorder.formatTime(var3.getAverage()),
TimeRecorder.formatTime(var3.getMinValue()),
TimeRecorder.formatTime(var3.getMaxValue()),
var4.getAverage(),
var4.getMaxValue(),
var12 == var14 ? var12 : var14 + "-" + var12,
var8 == var10 ? var8 : var10 + "-" + var8,
var16 == var18 ? var16 : var18 + "-" + var16
);
}
class="kw">public boolean haveUpdateTimes() {
class="kw">return this.playerGetTime.getCount() > 0L || this.entityGetTime.getCount() > 0L;
}
class="kw">public void formatHeaderLoS(@Nonnull Formatter var1) {
FormatUtil.formatArray(var1, "|%-6.6s", DEFAULT_COLUMNS_LOS);
}
class="kw">public boolean formatValuesLoS(@Nonnull Formatter var1) {
if (this.losTest.getMaxValue() == 0L && this.inverseLosTest.getMaxValue() == 0L && this.friendlyBlockingTest.getMaxValue() == 0L) {
class="kw">return false;
}
FormatUtil.formatArgs(
var1,
"|%6.6s",
this.losTest.getCount(),
this.losTest.getAverage(),
this.losTest.getMaxValue(),
(int)(this.losCacheHit.getAverage() * 100.0),
this.losTestTime.getCount(),
TimeRecorder.formatTime(this.losTestTime.getAverage()),
TimeRecorder.formatTime(this.losTestTime.getMinValue()),
TimeRecorder.formatTime(this.losTestTime.getMaxValue()),
this.inverseLosTest.getCount(),
this.inverseLosTest.getAverage(),
this.inverseLosTest.getMaxValue(),
(int)(this.inverseLosCacheHit.getAverage() * 100.0),
this.friendlyBlockingTest.getCount(),
this.friendlyBlockingTest.getAverage(),
this.friendlyBlockingTest.getMaxValue(),
(int)(this.friendlyBlockingCacheHit.getAverage() * 100.0)
);
class="kw">return true;
}
}