WorldPerfGraphCommand class

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

Файл: com/hypixel/hytale/server/core/universe/world/commands/world/perf/WorldPerfGraphCommand.java

extends: AbstractWorldCommand

Поля (11)

МодификаторыТипИмя
long[] var10
long var12
long[] var14
long[] var15
String var16
StringBuilder var17
Integer var4
Integer var5
long var6
Message var8
HistoricMetric var9

Методы (2)

МодификаторыВозвратСигнатура
for for(int var11 = 0; var11 < var10.length; var11++)
abstract super super("graph", "server.commands.world.perf.graph.desc")

Исходный код

Показать/скрыть
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.common.util.StringUtil;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
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.DefaultArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractWorldCommand;
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 WorldPerfGraphCommand class="kw">extends AbstractWorldCommand {
   @Nonnull
   class="kw">private class="kw">final DefaultArg<Integer> widthArg = this.withDefaultArg(
      "width", "server.commands.world.perf.graph.width.desc", ArgTypes.INTEGER, 100, "server.commands.world.perf.graph.width.class="kw">default"
   );
   @Nonnull
   class="kw">private class="kw">final DefaultArg<Integer> heightArg = this.withDefaultArg(
      "height", "server.commands.world.perf.graph.height.desc", ArgTypes.INTEGER, 10, "server.commands.world.perf.graph.height.class="kw">default"
   );

   class="kw">public WorldPerfGraphCommand() {
      super("graph", "server.commands.world.perf.graph.desc");
   }

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      Integer var4 = this.widthArg.get(var1);
      Integer var5 = this.heightArg.get(var1);
      long var6 = System.nanoTime();
      Message var8 = Message.empty();
      HistoricMetric var9 = var2.getBufferedTickLengthMetricSet();
      long[] var10 = var9.getPeriodsNanos();

      for (int var11 = 0; var11 < var10.length; var11++) {
         long var12 = var10[var11];
         long[] var14 = var9.getTimestamps(var11);
         long[] var15 = var9.getValues(var11);
         String var16 = FormatUtil.timeUnitToString(var12, TimeUnit.NANOSECONDS, true);
         var8.insert(Message.translation("server.commands.world.perf.graph").param("time", var16));
         StringBuilder var17 = new StringBuilder();
         StringUtil.generateGraph(
            var17,
            var4,
            var5,
            var6 - var12,
            var6,
            0.0,
            var2.getTps(),
            var0 -> String.valueOf(MathUtil.round(var0, 2)),
            var14.length,
            var1x -> var14[var1x],
            var2x -> WorldPerfCommand.tpsFromDelta(var15[var2x], var2.getTickStepNanos())
         );
         var8.insert(var17.toString()).insert("\n");
      }

      var1.sendMessage(var8);
   }
}