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