From 10b1631d59badd119a657a816b345c20a8cea600 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jan 2017 02:02:52 -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. --- ...7-Remove-the-Vanilla-Method-Profiler.patch | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Spigot-Server-Patches/0207-Remove-the-Vanilla-Method-Profiler.patch 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 +