This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
63 lines
3.1 KiB
Diff
63 lines
3.1 KiB
Diff
From a962c34610bc172ff3076bf986b38c2c09c29c33 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Sun, 5 Feb 2017 00:04:04 -0500
|
|
Subject: [PATCH] Remove CraftScheduler Async Task Debugger
|
|
|
|
I have not once ever seen this system help debug a crash.
|
|
One report of a suspected memory leak with the system.
|
|
|
|
This adds additional overhead to asynchronous task dispatching
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
|
index 26753fac5..a2fadaf82 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
|
@@ -84,8 +84,8 @@ public class CraftScheduler implements BukkitScheduler {
|
|
private volatile CraftTask currentTask = null;
|
|
private volatile int currentTick = -1;
|
|
private final Executor executor = Executors.newCachedThreadPool(new com.google.common.util.concurrent.ThreadFactoryBuilder().setNameFormat("Craft Scheduler Thread - %1$d").build()); // Spigot
|
|
- private CraftAsyncDebugger debugHead = new CraftAsyncDebugger(-1, null, null) {@Override StringBuilder debugTo(StringBuilder string) {return string;}};
|
|
- private CraftAsyncDebugger debugTail = debugHead;
|
|
+ //private CraftAsyncDebugger debugHead = new CraftAsyncDebugger(-1, null, null) {@Override StringBuilder debugTo(StringBuilder string) {return string;}}; // Paper
|
|
+ //private CraftAsyncDebugger debugTail = debugHead; // Paper
|
|
private static final int RECENT_TICKS;
|
|
|
|
static {
|
|
@@ -381,7 +381,7 @@ public class CraftScheduler implements BukkitScheduler {
|
|
}
|
|
parsePending();
|
|
} else {
|
|
- debugTail = debugTail.setNext(new CraftAsyncDebugger(currentTick + RECENT_TICKS, task.getOwner(), task.getTaskClass()));
|
|
+ //debugTail = debugTail.setNext(new CraftAsyncDebugger(currentTick + RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
|
|
executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
|
|
// We don't need to parse pending
|
|
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
|
|
@@ -398,7 +398,7 @@ public class CraftScheduler implements BukkitScheduler {
|
|
pending.addAll(temp);
|
|
temp.clear();
|
|
MinecraftTimings.bukkitSchedulerFinishTimer.stopTiming();
|
|
- debugHead = debugHead.getNextHead(currentTick);
|
|
+ //debugHead = debugHead.getNextHead(currentTick); // Paper
|
|
}
|
|
|
|
private void addTask(final CraftTask task) {
|
|
@@ -457,10 +457,15 @@ public class CraftScheduler implements BukkitScheduler {
|
|
|
|
@Override
|
|
public String toString() {
|
|
+ // Paper start
|
|
+ return "";
|
|
+ /*
|
|
int debugTick = currentTick;
|
|
StringBuilder string = new StringBuilder("Recent tasks from ").append(debugTick - RECENT_TICKS).append('-').append(debugTick).append('{');
|
|
debugHead.debugTo(string);
|
|
return string.append('}').toString();
|
|
+ */
|
|
+ // Paper end
|
|
}
|
|
|
|
@Deprecated
|
|
--
|
|
2.18.0
|
|
|