diff --git a/Spigot-Server-Patches/0207-Remove-the-Vanilla-Method-Profiler.patch b/Spigot-Server-Patches/0207-Remove-the-Vanilla-Method-Profiler.patch new file mode 100644 index 0000000000..c2d41ad5de --- /dev/null +++ b/Spigot-Server-Patches/0207-Remove-the-Vanilla-Method-Profiler.patch @@ -0,0 +1,83 @@ +From be1ee208e91e3e055087c6b12b415eb5aadb45f6 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Sat, 21 Jan 2017 02:00:33 -0500 +Subject: [PATCH] Remove the Vanilla Method Profiler + +Spigot rebrought this back after it was removed for years due to the performance hit. + +It is unknown if the JIT will optimize it out as effeciently with how it was +added, so we do not want any risk of performance degredation. + +Paper has a proper Timings system that makes the Vanilla Method profiler obsolete and inferior. + +diff --git a/src/main/java/net/minecraft/server/CommandDebug.java b/src/main/java/net/minecraft/server/CommandDebug.java +index fe58d428f..938f62f83 100644 +--- a/src/main/java/net/minecraft/server/CommandDebug.java ++++ b/src/main/java/net/minecraft/server/CommandDebug.java +@@ -33,12 +33,11 @@ public class CommandDebug extends CommandAbstract { + + public void execute(MinecraftServer minecraftserver, ICommandListener icommandlistener, String[] astring) throws CommandException { + // CraftBukkit start - only allow use when enabled (so that no blank profile results occur) +- if (!minecraftserver.methodProfiler.ENABLED) { +- icommandlistener.sendMessage(new ChatComponentText("Vanilla debug profiling is disabled.")); +- icommandlistener.sendMessage(new ChatComponentText("To enable, restart the server with `-DenableDebugMethodProfiler=true' before `-jar'.")); +- icommandlistener.sendMessage(new ChatComponentText("Use `/timings' for plugin timings.")); ++ if (true) { // Paper ++ icommandlistener.sendMessage(new ChatComponentText("Use `/timings report'")); // Paper + return; + } ++ /* + // CraftBukkit end + if (astring.length < 1) { + throw new ExceptionUsage("commands.debug.usage", new Object[0]); +@@ -144,7 +143,7 @@ public class CommandDebug extends CommandAbstract { + return astring[(int) (System.nanoTime() % (long) astring.length)]; + } catch (Throwable throwable) { + return "Witty comment unavailable :("; +- } ++ }*/ // Paper + } + + public List tabComplete(MinecraftServer minecraftserver, ICommandListener icommandlistener, String[] astring, @Nullable BlockPosition blockposition) { +diff --git a/src/main/java/net/minecraft/server/MethodProfiler.java b/src/main/java/net/minecraft/server/MethodProfiler.java +index 654652916..276983485 100644 +--- a/src/main/java/net/minecraft/server/MethodProfiler.java ++++ b/src/main/java/net/minecraft/server/MethodProfiler.java +@@ -9,8 +9,9 @@ import java.util.List; + import java.util.Map; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; +- +-public class MethodProfiler { ++// Paper - Remove this system - we have a more efficient Timings system ++/* ++class MethodProfiler { + + public static final boolean ENABLED = Boolean.getBoolean("enableDebugMethodProfiler"); // CraftBukkit - disable unless specified in JVM arguments + private static final Logger b = LogManager.getLogger(); +@@ -163,3 +164,22 @@ public class MethodProfiler { + } + } + } ++*/ ++ ++public class MethodProfiler { ++ public boolean a; ++ ++ MethodProfiler() {} ++ ++ public final void a() {} ++ ++ public final void a(String s) {} ++ ++ public final void b() {} ++ ++ public final void c(String s) {} ++ ++ public final String c() { ++ return null; ++ } ++} +-- +2.11.0 +