WorldPerfCommand class
Пакет: com.hypixel.hytale.server.core.universe.world.commands.world.perf
Файл: com/hypixel/hytale/server/core/universe/world/commands/world/perf/WorldPerfCommand.java
extends: AbstractWorldCommand
Поля (24)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
PRECISION |
|
String |
var11 |
|
double |
var12 |
|
double |
var13 |
|
long |
var14 |
|
long |
var15 |
|
long |
var16 |
|
long |
var17 |
|
String |
var18 |
|
String |
var19 |
|
String |
var20 |
|
String |
var21 |
|
String |
var23 |
|
String |
var24 |
|
HistoricMetric |
var4 |
|
long |
var4 |
|
|
var4 |
|
double |
var4 |
|
|
var4 |
|
long[] |
var5 |
|
int |
var6 |
|
Message |
var7 |
|
boolean |
var8 |
|
boolean |
var9 |
Методы (10)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var10 = 0; var10 < var5.length; var10++) |
|
|
for for(int var22 = 0; var22 < var5.length; var22++) |
|
|
if if(var8) |
|
|
if if(var8) |
|
|
if if(var9) |
|
|
if if(var4 < var2) |
|
|
if if(var4 < var2) |
abstract |
|
super super("perf", "server.commands.world.perf.desc") |
static |
double |
tpsFromDeltadouble tpsFromDelta(long var0, long var2) |
static |
double |
tpsFromDeltadouble tpsFromDelta(double var0, long var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.commands.world.perf;
class="kw">import com.hypixel.hytale.common.util.FormatUtil;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.metrics.metric.HistoricMetric;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractWorldCommand;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import javax.annotation.Nonnull;
class="kw">public class WorldPerfCommand class="kw">extends AbstractWorldCommand {
class="kw">public class="kw">static class="kw">final double PRECISION = 1000.0;
@Nonnull
class="kw">private class="kw">final FlagArg allFlag = this.withFlagArg("all", "server.commands.world.perf.all.desc");
@Nonnull
class="kw">private class="kw">final FlagArg deltaFlag = this.withFlagArg("delta", "server.commands.world.perf.delta.desc");
class="kw">public WorldPerfCommand() {
super("perf", "server.commands.world.perf.desc");
this.addSubCommand(new WorldPerfGraphCommand());
this.addSubCommand(new WorldPerfResetCommand());
}
@Override
class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
HistoricMetric var4 = var2.getBufferedTickLengthMetricSet();
long[] var5 = var4.getPeriodsNanos();
int var6 = var2.getTickStepNanos();
Message var7 = Message.empty();
boolean var8 = this.deltaFlag.provided(var1);
boolean var9 = this.allFlag.provided(var1);
if (var1.sender() class="kw">instanceof PlayerRef) {
for (int var10 = 0; var10 < var5.length; var10++) {
String var11 = FormatUtil.timeUnitToString(var5[var10], TimeUnit.NANOSECONDS, true);
double var12 = var4.getAverage(var10);
long var14 = var4.calculateMin(var10);
long var16 = var4.calculateMax(var10);
if (var8) {
String var18 = FormatUtil.simpleTimeUnitFormat(var14, var12, var16, TimeUnit.NANOSECONDS, TimeUnit.MILLISECONDS, 3);
String var19 = " ".repeat(Math.max(0, 24 - var18.length()));
var7.insert(
Message.translation("server.commands.world.perf.period").param("length", var11).param("padding", var19).param("value", var18).insert("\n")
);
} else {
var7.insert(
Message.translation("server.commands.world.perf.tpsTime")
.param("time", var11)
.param("tps", FormatUtil.simpleFormat(var14, var12, var16, var1x -> tpsFromDelta(var1x, var6), 2))
.insert("\n")
);
}
}
} else {
String var21 = FormatUtil.simpleTimeUnitFormat(var6, TimeUnit.NANOSECONDS, 3);
var7.insert(Message.translation("server.commands.world.perf.tickLimit").param("tickLimit", var21).insert("\n"));
for (int var22 = 0; var22 < var5.length; var22++) {
String var23 = FormatUtil.timeUnitToString(var5[var22], TimeUnit.NANOSECONDS, true);
double var13 = var4.getAverage(var22);
long var15 = var4.calculateMin(var22);
long var17 = var4.calculateMax(var22);
if (var8) {
String var24 = FormatUtil.simpleTimeUnitFormat(var15, var13, var17, TimeUnit.NANOSECONDS, TimeUnit.MILLISECONDS, 3);
String var20 = " ".repeat(Math.max(0, 24 - var24.length()));
var7.insert(
Message.translation("server.commands.world.perf.period").param("length", var23).param("padding", var20).param("value", var24).insert("\n")
);
} else {
var7.insert(
Message.translation("server.commands.world.perf.tpsMinMaxMetric")
.param("time", var23)
.param("min", tpsFromDelta(var17, var6))
.param("avg", tpsFromDelta(var13, var6))
.param("max", tpsFromDelta(var15, var6))
.insert("\n")
);
}
if (var9) {
var7.insert(
Message.translation("server.commands.world.perf.deltaMinMaxMetric")
.param("time", var23)
.param("min", var15)
.param("avg", (long)var13)
.param("max", var17)
.insert("\n")
);
}
}
}
var1.sendMessage(var7);
}
class="kw">public class="kw">static double tpsFromDelta(long var0, long var2) {
long var4 = var0;
if (var4 < var2) {
var4 = var2;
}
class="kw">return Math.round(1.0 / var4 * 1.0E9 * 1000.0) / 1000.0;
}
class="kw">public class="kw">static double tpsFromDelta(double var0, long var2) {
double var4 = var0;
if (var4 < var2) {
var4 = var2;
}
class="kw">return Math.round(1.0 / var4 * 1.0E9 * 1000.0) / 1000.0;
}
}