NPCBenchmarkCommand class
Пакет: com.hypixel.hytale.server.npc.commands
Файл: com/hypixel/hytale/server/npc/commands/NPCBenchmarkCommand.java
extends: CommandBase
Поля (15)
| Модификаторы | Тип | Имя |
|---|---|---|
|
SensorSupportBenchmark |
var10 |
|
int |
var12 |
|
double |
var2 |
|
boolean |
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
Formatter |
var5 |
|
Formatter |
var5 |
|
TimeDistributionRecorder |
var6 |
|
IntArrayList |
var6 |
|
IntArrayList |
var7 |
|
SensorSupportBenchmark |
var7 |
|
int |
var9 |
|
int |
var9 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
for for(int var8 = 0; var8 < var7.size() |
abstract |
|
for for(int var8 = 0; var8 < var6.size() |
abstract |
|
for for(int var11 = 0; var11 < var6.size() |
|
|
if if(var4) |
static |
void |
logRoleDistributionvoid logRoleDistribution(@Nonnull TimeDistributionRecorder var0, @Nonnull StringBuilder var1, @Nonnull Formatter var2, @Nonnull String var3) |
static |
void |
logSensorSupportLoSvoid logSensorSupportLoS(@Nonnull SensorSupportBenchmark var0, @Nonnull StringBuilder var1, @Nonnull Formatter var2, @Nonnull String var3) |
static |
void |
logSensorSupportUpdateTimevoid logSensorSupportUpdateTime(@Nonnull SensorSupportBenchmark var0, @Nonnull StringBuilder var1, @Nonnull Formatter var2, @Nonnull String var3) |
abstract |
|
super super("benchmark", "server.commands.npc.benchmark.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.commands;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.common.benchmark.TimeDistributionRecorder;
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.arguments.system.OptionalArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.util.SensorSupportBenchmark;
class="kw">import it.unimi.dsi.fastutil.ints.IntArrayList;
class="kw">import java.util.Formatter;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">public class NPCBenchmarkCommand class="kw">extends CommandBase {
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_NPC_BENCHMARK_START_FAILED = Message.translation("server.commands.npc.benchmark.startFailed");
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_NPC_BENCHMARK_DONE = Message.translation("server.commands.npc.benchmark.done");
@Nonnull
class="kw">private class="kw">final FlagArg roleArg = this.withFlagArg("roles", "server.commands.npc.benchmark.role.desc");
@Nonnull
class="kw">private class="kw">final FlagArg sensorSupportArg = this.withFlagArg("sensorsupport", "server.commands.npc.benchmark.sensor.desc");
@Nonnull
class="kw">private class="kw">final OptionalArg<Double> secondsArg = this.withOptionalArg("seconds", "server.commands.npc.benchmark.role.seconds", ArgTypes.DOUBLE)
.addValidator(Validators.greaterThan(0.0));
class="kw">public NPCBenchmarkCommand() {
super("benchmark", "server.commands.npc.benchmark.desc");
}
@Override
class="kw">protected void executeSync(@Nonnull CommandContext var1) {
double var2 = this.secondsArg.provided(var1) ? this.secondsArg.get(var1) : 30.0;
boolean var4;
if (this.roleArg.get(var1)) {
var4 = NPCPlugin.get()
.startRoleBenchmark(
var2,
var3 -> {
StringBuilder var4 = new StringBuilder().append("Role benchmark seconds=").append(var2).append('\n');
Formatter var5 = new Formatter(var4);
if (!var3.isEmpty()) {
TimeDistributionRecorder var6 = (TimeDistributionRecorder)var3.get(-1);
var6.formatHeader(var5);
var4.append('\n');
IntArrayList var7 = new IntArrayList(var3.keySet());
var7.rem(-1);
var7.sort(
(var1x, var2x) -> Double.compare(
((TimeDistributionRecorder)var3.get(var1x)).getAverage(), ((TimeDistributionRecorder)var3.get(var2x)).getAverage()
)
);
for (int var8 = 0; var8 < var7.size(); var8++) {
int var9 = var7.getInt(var8);
logRoleDistribution((TimeDistributionRecorder)var3.get(var9), var4, var5, NPCPlugin.get().getName(var9));
}
logRoleDistribution((TimeDistributionRecorder)var3.get(-1), var4, var5, "ALL");
}
var1.sendMessage(MESSAGE_COMMANDS_NPC_BENCHMARK_DONE);
NPCPlugin.get().getLogger().at(Level.INFO).log("%s", var4.toString());
}
);
} else if (this.sensorSupportArg.get(var1)) {
var4 = NPCPlugin.get().startSensorSupportBenchmark(var2, var3 -> {
StringBuilder var4 = new StringBuilder().append("PositionCache benchmark seconds=").append(var2).append('\n');
Formatter var5 = new Formatter(var4);
if (!var3.isEmpty()) {
IntArrayList var6 = new IntArrayList(var3.keySet());
var6.rem(-1);
var6.sort((var0x, var1x) -> NPCPlugin.get().getName(var0x).compareToIgnoreCase(NPCPlugin.get().getName(var1x)));
SensorSupportBenchmark var7 = (SensorSupportBenchmark)var3.get(-1);
var4.append("PositionCache Update Times\n");
var7.formatHeaderUpdateTimes(var5);
var4.append('\n');
for (int var8 = 0; var8 < var6.size(); var8++) {
int var9 = var6.getInt(var8);
SensorSupportBenchmark var10 = (SensorSupportBenchmark)var3.get(var9);
if (var10.haveUpdateTimes()) {
logSensorSupportUpdateTime(var10, var4, var5, NPCPlugin.get().getName(var9));
}
}
logSensorSupportUpdateTime((SensorSupportBenchmark)var3.get(-1), var4, var5, "ALL");
var4.append("PositionCache Line of sight\n");
var7.formatHeaderLoS(var5);
var4.append('\n');
for (int var11 = 0; var11 < var6.size(); var11++) {
int var12 = var6.getInt(var11);
logSensorSupportLoS((SensorSupportBenchmark)var3.get(var12), var4, var5, NPCPlugin.get().getName(var12));
}
logSensorSupportLoS((SensorSupportBenchmark)var3.get(-1), var4, var5, "ALL");
}
var1.sendMessage(MESSAGE_COMMANDS_NPC_BENCHMARK_DONE);
NPCPlugin.get().getLogger().at(Level.INFO).log("%s", var4.toString());
});
} else {
var4 = false;
}
if (var4) {
var1.sendMessage(Message.translation("server.commands.npc.benchmark.startedFor").param("seconds", var2));
} else {
var1.sendMessage(MESSAGE_COMMANDS_NPC_BENCHMARK_START_FAILED);
}
}
class="kw">private class="kw">static void logRoleDistribution(@Nonnull TimeDistributionRecorder var0, @Nonnull StringBuilder var1, @Nonnull Formatter var2, @Nonnull String var3) {
var0.formatValues(var2, 10000L);
var1.append("|").append(var3).append('\n');
}
class="kw">private class="kw">static void logSensorSupportUpdateTime(
@Nonnull SensorSupportBenchmark var0, @Nonnull StringBuilder var1, @Nonnull Formatter var2, @Nonnull String var3
) {
var0.formatValuesUpdateTimePlayer(var2);
var1.append('|').append(var3).append('\n');
var0.formatValuesUpdateTimeEntity(var2);
var1.append('|').append(var3).append('\n');
}
class="kw">private class="kw">static void logSensorSupportLoS(@Nonnull SensorSupportBenchmark var0, @Nonnull StringBuilder var1, @Nonnull Formatter var2, @Nonnull String var3) {
if (var0.formatValuesLoS(var2)) {
var1.append('|').append(var3).append('\n');
}
}
}