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;
   }
}