Timings changes (#3044)
* Timings changes - Increment entity tick count only when an entity ticks - Remove chunk inhabited timer - Try finally entity timings * Add activated entity ticks Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
This commit is contained in:
@@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2
|
||||
|
||||
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
|
||||
new file mode 100644
|
||||
index 000000000..69e26a826
|
||||
index 0000000000..69e26a8267
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/co/aikar/timings/MinecraftTimings.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -153,7 +153,7 @@ index 000000000..69e26a826
|
||||
+}
|
||||
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
|
||||
new file mode 100644
|
||||
index 000000000..e41083f14
|
||||
index 0000000000..27ce4a828e
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -219,7 +219,6 @@ index 000000000..e41083f14
|
||||
+
|
||||
+
|
||||
+ public final Timing miscMobSpawning;
|
||||
+ public final Timing chunkInhibitedRangeCheck;
|
||||
+
|
||||
+ public WorldTimingsHandler(World server) {
|
||||
+ String name = server.worldData.getName() +" - ";
|
||||
@@ -277,7 +276,6 @@ index 000000000..e41083f14
|
||||
+ countNaturalMobs = Timings.ofSafe(name + "Count natural mobs");
|
||||
+
|
||||
+
|
||||
+ chunkInhibitedRangeCheck = Timings.ofSafe(name + "Chunks - Inhibited Range Check");
|
||||
+ miscMobSpawning = Timings.ofSafe(name + "Mob spawning - Misc");
|
||||
+ }
|
||||
+
|
||||
@@ -286,7 +284,7 @@ index 000000000..e41083f14
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
index b6d470e59..f402a29b0 100644
|
||||
index b6d470e594..f402a29b09 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
@@ -0,0 +0,0 @@ import java.util.concurrent.TimeUnit;
|
||||
@@ -333,7 +331,7 @@ index b6d470e59..f402a29b0 100644
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
|
||||
index cd72a9c84..5de881371 100644
|
||||
index cd72a9c845..5de881371a 100644
|
||||
--- a/src/main/java/net/minecraft/server/Block.java
|
||||
+++ b/src/main/java/net/minecraft/server/Block.java
|
||||
@@ -0,0 +0,0 @@ public class Block implements IMaterial {
|
||||
@@ -353,7 +351,7 @@ index cd72a9c84..5de881371 100644
|
||||
private final float frictionFactor;
|
||||
private final float f;
|
||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||
index e58dd3e6d..0b32179b7 100644
|
||||
index e58dd3e6df..0b32179b79 100644
|
||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
||||
@@ -373,7 +371,7 @@ index e58dd3e6d..0b32179b7 100644
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index a5f2468a6..a3d150a13 100644
|
||||
index 2b0ad4226e..a878f7c759 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -0,0 +0,0 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -435,7 +433,6 @@ index a5f2468a6..a3d150a13 100644
|
||||
this.world.getMethodProfiler().exit();
|
||||
ChunkCoordIntPair chunkcoordintpair = playerchunk.i();
|
||||
|
||||
+ this.world.timings.chunkInhibitedRangeCheck.startTiming();
|
||||
if (!this.playerChunkMap.isOutsideOfRange(chunkcoordintpair)) {
|
||||
+ // Paper end
|
||||
chunk.setInhabitedTime(chunk.getInhabitedTime() + j);
|
||||
@@ -451,7 +448,6 @@ index a5f2468a6..a3d150a13 100644
|
||||
- this.world.timings.doTickTiles.stopTiming(); // Spigot
|
||||
+ this.world.timings.chunkTicks.stopTiming(); // Spigot // Paper
|
||||
}
|
||||
+ this.world.timings.chunkInhibitedRangeCheck.stopTiming(); // Paper
|
||||
}
|
||||
});
|
||||
this.world.getMethodProfiler().enter("customSpawners");
|
||||
@@ -472,7 +468,7 @@ index a5f2468a6..a3d150a13 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index e16d30f2c..4af5a230b 100644
|
||||
index e16d30f2ca..4af5a230ba 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -510,7 +506,7 @@ index e16d30f2c..4af5a230b 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/CustomFunction.java b/src/main/java/net/minecraft/server/CustomFunction.java
|
||||
index 8d7a6d240..707bd2600 100644
|
||||
index 8d7a6d2403..707bd2600d 100644
|
||||
--- a/src/main/java/net/minecraft/server/CustomFunction.java
|
||||
+++ b/src/main/java/net/minecraft/server/CustomFunction.java
|
||||
@@ -0,0 +0,0 @@ public class CustomFunction {
|
||||
@@ -537,7 +533,7 @@ index 8d7a6d240..707bd2600 100644
|
||||
return this.b;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/CustomFunctionData.java b/src/main/java/net/minecraft/server/CustomFunctionData.java
|
||||
index ba40d5fbb..ee42e1dfa 100644
|
||||
index ba40d5fbb5..ee42e1dfa4 100644
|
||||
--- a/src/main/java/net/minecraft/server/CustomFunctionData.java
|
||||
+++ b/src/main/java/net/minecraft/server/CustomFunctionData.java
|
||||
@@ -0,0 +0,0 @@ public class CustomFunctionData implements IResourcePackListener {
|
||||
@@ -550,7 +546,7 @@ index ba40d5fbb..ee42e1dfa 100644
|
||||
int k = 0;
|
||||
CustomFunction.c[] acustomfunction_c = customfunction.b();
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
index 9eed98e37..d6646d7e6 100644
|
||||
index 9eed98e379..d6646d7e61 100644
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
@@ -0,0 +0,0 @@ import java.util.List;
|
||||
@@ -638,7 +634,7 @@ index 9eed98e37..d6646d7e6 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index d2cfc6551..74a4bf9c5 100644
|
||||
index d2cfc65513..74a4bf9c5c 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.command.CommandSender;
|
||||
@@ -677,7 +673,7 @@ index d2cfc6551..74a4bf9c5 100644
|
||||
|
||||
protected BlockPosition ag() {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index 1f350e335..35e3f1c78 100644
|
||||
index 1f350e3352..35e3f1c78d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
@@ -753,7 +749,7 @@ index 1f350e335..35e3f1c78 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index b4a0bd795..4dc691775 100644
|
||||
index b4a0bd7951..4dc6917759 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.craftbukkit.CraftServer;
|
||||
@@ -929,7 +925,7 @@ index b4a0bd795..4dc691775 100644
|
||||
this.methodProfiler.exit();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
index 93d838ec2..2a6955f85 100644
|
||||
index 93d838ec2d..2a6955f855 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1012,7 +1008,7 @@ index 93d838ec2..2a6955f85 100644
|
||||
|
||||
protected void broadcast(Entity entity, Packet<?> packet) {
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 6a681d694..914366afc 100644
|
||||
index 6a681d694e..914366afcd 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.inventory.CraftingInventory;
|
||||
@@ -1067,7 +1063,7 @@ index 6a681d694..914366afc 100644
|
||||
// this.minecraftServer.getCommandDispatcher().a(this.player.getCommandListener(), s);
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
|
||||
index 2c671629a..eb3269e0e 100644
|
||||
index 2c671629a4..eb3269e0ea 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
|
||||
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
||||
@@ -1094,7 +1090,7 @@ index 2c671629a..eb3269e0e 100644
|
||||
PlayerConnectionUtils.LOGGER.debug("Ignoring packet due to disconnection: " + packet);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
index 0694f4563..1652a57e2 100644
|
||||
index 0694f4563e..1652a57e25 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1118,7 +1114,7 @@ index 0694f4563..1652a57e2 100644
|
||||
|
||||
public WhiteList getWhitelist() {
|
||||
diff --git a/src/main/java/net/minecraft/server/TickListServer.java b/src/main/java/net/minecraft/server/TickListServer.java
|
||||
index 00bbd34b6..f533860bb 100644
|
||||
index 00bbd34b6a..f533860bbe 100644
|
||||
--- a/src/main/java/net/minecraft/server/TickListServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/TickListServer.java
|
||||
@@ -0,0 +0,0 @@ public class TickListServer<T> implements TickList<T> {
|
||||
@@ -1168,7 +1164,7 @@ index 00bbd34b6..f533860bb 100644
|
||||
this.g.clear();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
|
||||
index 820180ab3..fa6400dcc 100644
|
||||
index 820180ab3f..fa6400dccd 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/TileEntity.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer;
|
||||
@@ -1187,7 +1183,7 @@ index 820180ab3..fa6400dcc 100644
|
||||
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
|
||||
public CraftPersistentDataContainer persistentDataContainer;
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 6861711c2..132c08dd1 100644
|
||||
index 6861711c29..132c08dd19 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1243,7 +1239,7 @@ index 6861711c2..132c08dd1 100644
|
||||
CrashReport crashreport = CrashReport.a(throwable, "Ticking entity");
|
||||
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being ticked");
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 8a5ac6f69..069898bad 100644
|
||||
index 8a5ac6f69b..6810d49b17 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1312,14 +1308,6 @@ index 8a5ac6f69..069898bad 100644
|
||||
Entry<Entity> entry = (Entry) objectiterator.next();
|
||||
Entity entity1 = (Entity) entry.getValue();
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
gameprofilerfiller.enter("tick");
|
||||
if (!entity1.dead && !(entity1 instanceof EntityComplexPart)) {
|
||||
this.a(this::entityJoinedWorld, entity1);
|
||||
+ ++TimingHistory.entityTicks; // Paper
|
||||
}
|
||||
|
||||
gameprofilerfiller.exit();
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
|
||||
this.tickingEntities = false;
|
||||
|
||||
@@ -1348,6 +1336,34 @@ index 8a5ac6f69..069898bad 100644
|
||||
gameprofilerfiller.exit();
|
||||
}
|
||||
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
|
||||
public void entityJoinedWorld(Entity entity) {
|
||||
if (entity instanceof EntityHuman || this.getChunkProvider().a(entity)) {
|
||||
+ ++TimingHistory.entityTicks; // Paper - timings
|
||||
// Spigot start
|
||||
if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
|
||||
entity.ticksLived++;
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
}
|
||||
// Spigot end
|
||||
|
||||
+ TimingHistory.activatedEntityTicks++; // Paper - timings
|
||||
entity.tickTimer.startTiming(); // Spigot
|
||||
+ try { // Paper - timings
|
||||
entity.f(entity.locX(), entity.locY(), entity.locZ());
|
||||
entity.lastYaw = entity.yaw;
|
||||
entity.lastPitch = entity.pitch;
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
this.a(entity, entity1);
|
||||
}
|
||||
}
|
||||
+ } finally { // Paper - timings
|
||||
entity.tickTimer.stopTiming(); // Spigot
|
||||
+ } // Paper - timings
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
|
||||
if (!flag1) {
|
||||
@@ -1368,7 +1384,7 @@ index 8a5ac6f69..069898bad 100644
|
||||
|
||||
// CraftBukkit start - moved from MinecraftServer.saveChunks
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 8d1f066f0..f3eacb181 100644
|
||||
index 8d1f066f00..f3eacb1819 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||
@@ -1405,7 +1421,7 @@ index 8d1f066f0..f3eacb181 100644
|
||||
org.spigotmc.RestartCommand.restart();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
|
||||
deleted file mode 100644
|
||||
index 2bd22a369..000000000
|
||||
index 2bd22a3698..0000000000
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
|
||||
+++ /dev/null
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1572,7 +1588,7 @@ index 2bd22a369..000000000
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 9eba8449e..1094190fd 100644
|
||||
index 9eba8449e4..1094190fd9 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1591,7 +1607,7 @@ index 9eba8449e..1094190fd 100644
|
||||
|
||||
public Player.Spigot spigot()
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
||||
index b90979c7b..8823f94f7 100644
|
||||
index b90979c7ba..8823f94f7b 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1657,7 +1673,7 @@ index b90979c7b..8823f94f7 100644
|
||||
|
||||
private boolean isReady(final int currentTick) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
|
||||
index 3f55381c1..0d9a46680 100644
|
||||
index 3f55381c15..0d9a466809 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
|
||||
@@ -0,0 +0,0 @@
|
||||
@@ -1742,7 +1758,7 @@ index 3f55381c1..0d9a46680 100644
|
||||
- // Spigot end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
|
||||
index e52ef47b7..3d90b3426 100644
|
||||
index e52ef47b78..3d90b34268 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.util.CachedServerIcon;
|
||||
@@ -1754,7 +1770,7 @@ index e52ef47b7..3d90b3426 100644
|
||||
this.value = value;
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
index 68728b4d8..02f330053 100644
|
||||
index 68728b4d86..02f3300533 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
@@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
@@ -1772,7 +1788,7 @@ index 68728b4d8..02f330053 100644
|
||||
* This helper class represents the different NBT Tags.
|
||||
* <p>
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index ca7789b5e..442383969 100644
|
||||
index ca7789b5e0..4423839697 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -0,0 +0,0 @@ import net.minecraft.server.EntityWither;
|
||||
|
||||
Reference in New Issue
Block a user