Re-add recentTps array for plugins that make bad choices

This commit is contained in:
Zach Brown 2015-07-26 15:58:37 -05:00
parent 56afbe3f71
commit fe4c7c88ac
2 changed files with 17 additions and 13 deletions

View File

@ -1,4 +1,4 @@
From f92b84536fcd930f5160039476dfae760c550645 Mon Sep 17 00:00:00 2001 From a034823848869c3e53707f9c30a9df2ce171db27 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 8 Mar 2015 03:47:32 -0500 Date: Sun, 8 Mar 2015 03:47:32 -0500
Subject: [PATCH] Further improve server tick loop Subject: [PATCH] Further improve server tick loop
@ -12,7 +12,7 @@ Previous implementation did not calculate TPS correctly.
Switch to a realistic rolling average and factor in std deviation as an extra reporting variable Switch to a realistic rolling average and factor in std deviation as an extra reporting variable
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1061088..a66ea75 100644 index 1061088..0e88078 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -111,17 +111,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -111,17 +111,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@ -34,7 +34,7 @@ index 1061088..a66ea75 100644
public MinecraftServer(OptionSet options, Proxy proxy, File file1) { public MinecraftServer(OptionSet options, Proxy proxy, File file1) {
io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable
@@ -512,12 +506,53 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -512,12 +506,54 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
this.isRunning = false; this.isRunning = false;
} }
@ -51,6 +51,7 @@ index 1061088..a66ea75 100644
+ public final RollingAverage tps1 = new RollingAverage(60); + public final RollingAverage tps1 = new RollingAverage(60);
+ public final RollingAverage tps5 = new RollingAverage(60 * 5); + public final RollingAverage tps5 = new RollingAverage(60 * 5);
+ public final RollingAverage tps15 = new RollingAverage(60 * 15); + public final RollingAverage tps15 = new RollingAverage(60 * 15);
+ public double[] recentTps = new double[ 3 ]; // PaperSpigot - Fine have your darn compat with bad plugins
+ +
+ public static class RollingAverage { + public static class RollingAverage {
+ private final int size; + private final int size;
@ -93,14 +94,13 @@ index 1061088..a66ea75 100644
public void run() { public void run() {
try { try {
@@ -530,26 +565,43 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -530,26 +566,47 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
this.a(this.r); this.a(this.r);
// Spigot start // Spigot start
- Arrays.fill( recentTps, 20 );
- long lastTick = System.nanoTime(), catchupTime = 0, curTime, wait, tickSection = lastTick;
+ // PaperSpigot start - Further improve tick loop + // PaperSpigot start - Further improve tick loop
+ //Arrays.fill( recentTps, 20 ); Arrays.fill( recentTps, 20 );
- long lastTick = System.nanoTime(), catchupTime = 0, curTime, wait, tickSection = lastTick;
+ //long lastTick = System.nanoTime(), catchupTime = 0, curTime, wait, tickSection = lastTick; + //long lastTick = System.nanoTime(), catchupTime = 0, curTime, wait, tickSection = lastTick;
+ long start = System.nanoTime(), lastTick = start - TICK_TIME, catchupTime = 0, curTime, wait, tickSection = start; + long start = System.nanoTime(), lastTick = start - TICK_TIME, catchupTime = 0, curTime, wait, tickSection = start;
+ // PaperSpigot end + // PaperSpigot end
@ -144,6 +144,10 @@ index 1061088..a66ea75 100644
+ tps1.add(currentTps, diff); + tps1.add(currentTps, diff);
+ tps5.add(currentTps, diff); + tps5.add(currentTps, diff);
+ tps15.add(currentTps, diff); + tps15.add(currentTps, diff);
+ // Backwards compat with bad plugins
+ recentTps[0] = tps1.getAverage();
+ recentTps[1] = tps5.getAverage();
+ recentTps[2] = tps15.getAverage();
tickSection = curTime; tickSection = curTime;
+ // PaperSpigot end + // PaperSpigot end
} }
@ -212,5 +216,5 @@ index be2e31d..21fd7ef 100644
return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString() return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString()
+ ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); + ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 );
-- --
1.9.5.msysgit.1 2.4.5.windows.1

View File

@ -1,4 +1,4 @@
From 0de8fc2d43f4864027f86266e157d2d7009cfa55 Mon Sep 17 00:00:00 2001 From 2cd37e23df2ba3480711fdd100abb7e46482e1aa Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net> From: Byteflux <byte@byteflux.net>
Date: Tue, 16 Jun 2015 05:52:58 -0700 Date: Tue, 16 Jun 2015 05:52:58 -0700
Subject: [PATCH] Optimize explosions Subject: [PATCH] Optimize explosions
@ -110,10 +110,10 @@ index f40f465..4afb8d7 100644
+ // PaperSpigot end + // PaperSpigot end
} }
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index a66ea75..5c3518a 100644 index 0e88078..4945043 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -855,6 +855,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -860,6 +860,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
worldserver.timings.tracker.stopTiming(); // Spigot worldserver.timings.tracker.stopTiming(); // Spigot
this.methodProfiler.b(); this.methodProfiler.b();
this.methodProfiler.b(); this.methodProfiler.b();
@ -122,7 +122,7 @@ index a66ea75..5c3518a 100644
// this.i[i][this.ticks % 100] = System.nanoTime() - j; // CraftBukkit // this.i[i][this.ticks % 100] = System.nanoTime() - j; // CraftBukkit
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e96fa6f..294f54c 100644 index b3e77d5..39cf1a3 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -133,6 +133,7 @@ public abstract class World implements IBlockAccess { @@ -133,6 +133,7 @@ public abstract class World implements IBlockAccess {
@ -149,5 +149,5 @@ index 0b75e16..4596e9d 100644
+ } + }
} }
-- --
1.9.5.msysgit.1 2.4.5.windows.1