SPIGOT-3595: Optimize (Tile)Entity timing

This commit is contained in:
md_5 2017-10-28 16:17:34 +11:00
parent 93e20b3652
commit 06f33d0ab5

View file

@ -1,12 +1,12 @@
From 07ae4a5445e8cf4e92c70d4dfd96f257ac5978dd Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 10 Jan 2013 00:18:11 -0500
From fd7708d7204153db913c3d15394a541cd1a5cf0e Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 28 Oct 2017 16:17:07 +1100
Subject: [PATCH] Spigot Timings
Overhauls the Timings System adding performance tracking all around the Minecraft Server
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 1c1499a98..779f5714a 100644
index 1c1499a9..779f5714 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -842,6 +842,7 @@ public class Chunk {
@ -26,7 +26,7 @@ index 1c1499a98..779f5714a 100644
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index a9c9d714e..d2546b5d6 100644
index a9c9d714..d2546b5d 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -153,6 +153,7 @@ public class ChunkProviderServer implements IChunkProvider {
@ -46,7 +46,7 @@ index a9c9d714e..d2546b5d6 100644
return chunk;
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 6823819b2..e0e4c9a0e 100644
index 6823819b..e0e4c9a0 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -34,7 +34,9 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
@ -96,7 +96,7 @@ index 6823819b2..e0e4c9a0e 100644
// return chunk; // CraftBukkit
}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 330c5fe3e..f1a389b65 100644
index 330c5fe3..f1a389b6 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -24,6 +24,7 @@ import java.io.PrintStream;
@ -124,7 +124,7 @@ index 330c5fe3e..f1a389b65 100644
public boolean aa() {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 96bc931ad..c1d36c85f 100644
index 96bc931a..c1d36c85 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -25,6 +25,7 @@ import org.bukkit.block.BlockFace;
@ -160,7 +160,7 @@ index 96bc931ad..c1d36c85f 100644
public void recalcPosition() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 9b70914de..2e88fddb4 100644
index 9b70914d..2e88fddb 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -31,6 +31,8 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@ -230,7 +230,7 @@ index 9b70914de..2e88fddb4 100644
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 48495b64d..26fe01bae 100644
index 48495b64..26fe01ba 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -48,6 +48,7 @@ import org.bukkit.Bukkit;
@ -359,7 +359,7 @@ index 48495b64d..26fe01bae 100644
this.methodProfiler.b();
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index f1e1b28d2..14ca7904a 100644
index eda6dff9..360bca58 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1317,6 +1317,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@ -394,7 +394,7 @@ index f1e1b28d2..14ca7904a 100644
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 296a02950..e29b593aa 100644
index 296a0295..e29b593a 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -4,10 +4,12 @@ import javax.annotation.Nullable;
@ -411,7 +411,7 @@ index 296a02950..e29b593aa 100644
private static final RegistryMaterials<MinecraftKey, Class<? extends TileEntity>> f = new RegistryMaterials();
protected World world;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b043266be..8a618dfce 100644
index b043266b..8a618dfc 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -19,6 +19,7 @@ import com.google.common.collect.Maps;
@ -521,7 +521,7 @@ index b043266be..8a618dfce 100644
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index ad88b4d9a..1e07fb296 100644
index ad88b4d9..1e07fb29 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -283,10 +283,13 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@ -576,7 +576,7 @@ index ad88b4d9a..1e07fb296 100644
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index ce40ffafe..633ddb498 100644
index ce40ffaf..633ddb49 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1702,6 +1702,11 @@ public final class CraftServer implements Server {
@ -593,7 +593,7 @@ index ce40ffafe..633ddb498 100644
public Spigot spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
new file mode 100644
index 000000000..a3f8a2e5d
index 00000000..fa88be0d
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
@@ -0,0 +1,171 @@
@ -685,10 +685,10 @@ index 000000000..a3f8a2e5d
+ * @return
+ */
+ public static CustomTimingsHandler getEntityTimings(Entity entity) {
+ String entityType = entity.getClass().getSimpleName();
+ String entityType = entity.getClass().getName();
+ CustomTimingsHandler result = entityTypeTimingMap.get(entityType);
+ if (result == null) {
+ result = new CustomTimingsHandler("** tickEntity - " + entityType, activatedEntityTimer);
+ result = new CustomTimingsHandler("** tickEntity - " + entity.getClass().getSimpleName(), activatedEntityTimer);
+ entityTypeTimingMap.put(entityType, result);
+ }
+ return result;
@ -700,10 +700,10 @@ index 000000000..a3f8a2e5d
+ * @return
+ */
+ public static CustomTimingsHandler getTileEntityTimings(TileEntity entity) {
+ String entityType = entity.getClass().getSimpleName();
+ String entityType = entity.getClass().getName();
+ CustomTimingsHandler result = tileEntityTypeTimingMap.get(entityType);
+ if (result == null) {
+ result = new CustomTimingsHandler("** tickTileEntity - " + entityType, tickTileEntityTimer);
+ result = new CustomTimingsHandler("** tickTileEntity - " + entity.getClass().getSimpleName(), tickTileEntityTimer);
+ tileEntityTypeTimingMap.put(entityType, result);
+ }
+ return result;
@ -769,7 +769,7 @@ index 000000000..a3f8a2e5d
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java
index f1c1dc495..3a95b4465 100644
index f1c1dc49..3a95b446 100644
--- a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java
+++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java
@@ -45,7 +45,9 @@ class ChunkIOProvider implements AsynchronousExecutor.CallBackProvider<QueuedChu
@ -783,7 +783,7 @@ index f1c1dc495..3a95b4465 100644
chunk.loadNearby(queuedChunk.provider, queuedChunk.provider.chunkGenerator, false);
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index edd7c74de..8558de349 100644
index c5d751e9..f2278e89 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -349,7 +349,9 @@ public class CraftScheduler implements BukkitScheduler {
@ -797,7 +797,7 @@ index edd7c74de..8558de349 100644
task.getOwner().getLogger().log(
Level.WARNING,
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
index 9cb666bb1..c37275f2a 100644
index 9cb666bb..c37275f2 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
@@ -1,11 +1,13 @@