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