WorldGenTimingsCollector class

Пакет: com.hypixel.hytale.server.core.universe.world.worldgen

Файл: com/hypixel/hytale/server/core/universe/world/worldgen/WorldGenTimingsCollector.java

Поля (5)

МодификаторыТипИмя
final MetricsRegistry<WorldGenTimingsCollector> METRICS_REGISTRY
long var2
long var4
long var4
long var6

Методы (21)

МодификаторыВозвратСигнатура
protected double addAndGetdouble addAndGet(int var1, long var2)
public double blocksGenerationdouble blocksGeneration()
public double caveGenerationdouble caveGeneration()
protected double getdouble get(int var1)
static double getAvgSecondsdouble getAvgSeconds(long var0, long var2)
abstract return getAvgSecondsreturn getAvgSeconds(var2, var4)
abstract return getAvgSecondsreturn getAvgSeconds(var4, var6)
public long getChunkCounterlong getChunkCounter()
public double getChunkTimedouble getChunkTime()
public int getGeneratingCountint getGeneratingCount()
public int getQueueLengthint getQueueLength()
public double getWarmupValuedouble getWarmupValue()
public double prefabGenerationdouble prefabGeneration()
public double preparedouble prepare()
public double reportBlocksGenerationdouble reportBlocksGeneration(long var1)
public double reportCaveGenerationdouble reportCaveGeneration(long var1)
public double reportChunkdouble reportChunk(long var1)
public double reportPrefabGenerationdouble reportPrefabGeneration(long var1)
public double reportPreparedouble reportPrepare(long var1)
public double reportZoneBiomeResultdouble reportZoneBiomeResult(long var1)
public double zoneBiomeResultdouble zoneBiomeResult()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.worldgen;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.metrics.MetricsRegistry;
class="kw">import java.util.concurrent.ThreadPoolExecutor;
class="kw">import java.util.concurrent.atomic.AtomicLong;
class="kw">import java.util.concurrent.atomic.AtomicLongArray;
class="kw">import javax.annotation.Nonnull;

class="kw">public class WorldGenTimingsCollector {
   class="kw">public class="kw">static class="kw">final MetricsRegistry<WorldGenTimingsCollector> METRICS_REGISTRY = new MetricsRegistry<WorldGenTimingsCollector>()
      .register("Chunks", var0 -> var0.chunkCounter.get(), Codec.LONG)
      .register("ChunkTime", var0 -> var0.getChunkTime(), Codec.DOUBLE)
      .register("ZoneBiomeResultTime", var0 -> var0.zoneBiomeResult(), Codec.DOUBLE)
      .register("PrepareTime", var0 -> var0.prepare(), Codec.DOUBLE)
      .register("BlocksTime", var0 -> var0.blocksGeneration(), Codec.DOUBLE)
      .register("CaveTime", var0 -> var0.caveGeneration(), Codec.DOUBLE)
      .register("PrefabTime", var0 -> var0.prefabGeneration(), Codec.DOUBLE)
      .register("QueueLength", WorldGenTimingsCollector::getQueueLength, Codec.INTEGER)
      .register("GeneratingCount", WorldGenTimingsCollector::getGeneratingCount, Codec.INTEGER);
   class="kw">private class="kw">static class="kw">final double NANOS_TO_SECONDS = 1.0E-9;
   class="kw">private class="kw">static class="kw">final int WARMUP = 100;
   class="kw">private class="kw">static class="kw">final double WARMUP_VALUE = Double.NEGATIVE_INFINITY;
   class="kw">private class="kw">static class="kw">final int CHUNKS = 0;
   class="kw">private class="kw">static class="kw">final int ZONE_BIOME_RESULT = 1;
   class="kw">private class="kw">static class="kw">final int PREPARE = 2;
   class="kw">private class="kw">static class="kw">final int BLOCKS = 3;
   class="kw">private class="kw">static class="kw">final int CAVES = 4;
   class="kw">private class="kw">static class="kw">final int PREFABS = 5;
   class="kw">private class="kw">final AtomicLong chunkCounter = new AtomicLong();
   class="kw">private class="kw">final AtomicLongArray times = new AtomicLongArray(6);
   class="kw">private class="kw">final AtomicLongArray counts = new AtomicLongArray(6);
   class="kw">private class="kw">final ThreadPoolExecutor threadPoolExecutor;

   class="kw">public WorldGenTimingsCollector(ThreadPoolExecutor var1) {
      this.threadPoolExecutor = var1;
   }

   class="kw">public double reportChunk(long var1) {
      class="kw">return this.chunkCounter.incrementAndGet() > 100L ? this.addAndGet(0, var1) : Double.NEGATIVE_INFINITY;
   }

   class="kw">public double reportZoneBiomeResult(long var1) {
      class="kw">return this.chunkCounter.get() > 100L ? this.addAndGet(1, var1) : Double.NEGATIVE_INFINITY;
   }

   class="kw">public double reportPrepare(long var1) {
      class="kw">return this.chunkCounter.get() > 100L ? this.addAndGet(2, var1) : Double.NEGATIVE_INFINITY;
   }

   class="kw">public double reportBlocksGeneration(long var1) {
      class="kw">return this.chunkCounter.get() > 100L ? this.addAndGet(3, var1) : Double.NEGATIVE_INFINITY;
   }

   class="kw">public double reportCaveGeneration(long var1) {
      class="kw">return this.chunkCounter.get() > 100L ? this.addAndGet(4, var1) : Double.NEGATIVE_INFINITY;
   }

   class="kw">public double reportPrefabGeneration(long var1) {
      class="kw">return this.chunkCounter.get() > 100L ? this.addAndGet(5, var1) : Double.NEGATIVE_INFINITY;
   }

   class="kw">public double getWarmupValue() {
      class="kw">return Double.NEGATIVE_INFINITY;
   }

   class="kw">public double zoneBiomeResult() {
      class="kw">return this.get(1);
   }

   class="kw">public double prepare() {
      class="kw">return this.get(2);
   }

   class="kw">public double blocksGeneration() {
      class="kw">return this.get(3);
   }

   class="kw">public double caveGeneration() {
      class="kw">return this.get(4);
   }

   class="kw">public double prefabGeneration() {
      class="kw">return this.get(5);
   }

   class="kw">public long getChunkCounter() {
      class="kw">return this.chunkCounter.get();
   }

   class="kw">public double getChunkTime() {
      class="kw">return this.get(0);
   }

   class="kw">public int getQueueLength() {
      class="kw">return this.threadPoolExecutor.getQueue().size();
   }

   class="kw">public int getGeneratingCount() {
      class="kw">return this.threadPoolExecutor.getActiveCount();
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return String.format(
         "cnt: %s, zbr: %s, pp: %s, b: %s, c: %s, pf: %s",
         this.getChunkCounter(),
         this.zoneBiomeResult(),
         this.prepare(),
         this.blocksGeneration(),
         this.caveGeneration(),
         this.prefabGeneration()
      );
   }

   class="kw">protected double get(int var1) {
      long var2 = this.times.get(var1);
      long var4 = this.counts.get(var1);
      class="kw">return getAvgSeconds(var2, var4);
   }

   class="kw">protected double addAndGet(int var1, long var2) {
      long var4 = this.times.addAndGet(var1, var2);
      long var6 = this.counts.incrementAndGet(var1);
      class="kw">return getAvgSeconds(var4, var6);
   }

   class="kw">protected class="kw">static double getAvgSeconds(long var0, long var2) {
      class="kw">return var2 == 0L ? 0.0 : var0 * 1.0E-9 / var2;
   }
}