From 11f2794bbe146bf43ec4f954034ba8cb48e5dee0 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 27 Jul 2017 00:25:13 -0400 Subject: [PATCH] Remove use of FastUtil for unload queue, very bad performance --- .../0098-Use-Optimized-Collections.patch | 19 +++---------------- .../0165-Chunk-Save-Stats-Debug-Option.patch | 10 +++++----- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/Spigot-Server-Patches/0098-Use-Optimized-Collections.patch b/Spigot-Server-Patches/0098-Use-Optimized-Collections.patch index 75d7f6eaf5..a316948d1a 100644 --- a/Spigot-Server-Patches/0098-Use-Optimized-Collections.patch +++ b/Spigot-Server-Patches/0098-Use-Optimized-Collections.patch @@ -1,4 +1,4 @@ -From 147fdac9554b71e235db05a344cd6d5dbda149a4 Mon Sep 17 00:00:00 2001 +From 92c11ac4d9226bc25c8f4b82fbf686c30b8c4660 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Mar 2016 02:13:24 -0400 Subject: [PATCH] Use Optimized Collections @@ -12,21 +12,8 @@ and could not create anything faster than fastutil. These collections are super fast as seen http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/ -diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index c81b404b..4d0cb971 100644 ---- a/src/main/java/net/minecraft/server/ChunkProviderServer.java -+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -24,7 +24,7 @@ import org.bukkit.event.world.ChunkUnloadEvent; - public class ChunkProviderServer implements IChunkProvider { - - private static final Logger a = LogManager.getLogger(); -- public final Set unloadQueue = Sets.newHashSet(); -+ public final it.unimi.dsi.fastutil.longs.LongSet unloadQueue = new it.unimi.dsi.fastutil.longs.LongArraySet(); // PAIL: private -> public // Paper - public final ChunkGenerator chunkGenerator; - private final IChunkLoader chunkLoader; - // Paper start diff --git a/src/main/java/net/minecraft/server/DataWatcher.java b/src/main/java/net/minecraft/server/DataWatcher.java -index 1507f97f..fe848445 100644 +index 1507f97fd..fe8484453 100644 --- a/src/main/java/net/minecraft/server/DataWatcher.java +++ b/src/main/java/net/minecraft/server/DataWatcher.java @@ -12,6 +12,7 @@ import java.util.Map; @@ -47,5 +34,5 @@ index 1507f97f..fe848445 100644 private boolean f = true; private boolean g; -- -2.13.1.windows.2 +2.13.0 diff --git a/Spigot-Server-Patches/0165-Chunk-Save-Stats-Debug-Option.patch b/Spigot-Server-Patches/0165-Chunk-Save-Stats-Debug-Option.patch index 53ef69e5db..08a46c546a 100644 --- a/Spigot-Server-Patches/0165-Chunk-Save-Stats-Debug-Option.patch +++ b/Spigot-Server-Patches/0165-Chunk-Save-Stats-Debug-Option.patch @@ -1,4 +1,4 @@ -From a4983ae26e02ae36edd96e20963b3c145ce27ee4 Mon Sep 17 00:00:00 2001 +From a64e03a4b423c7339dacffcc1c14168d7f2aba7f Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 4 Nov 2016 02:12:10 -0400 Subject: [PATCH] Chunk Save Stats Debug Option @@ -8,11 +8,11 @@ Adds a command line flag to enable stats on how chunk saves are processing. Stats on current queue, how many was processed and how many were queued. diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 19f10fed..9159ed02 100644 +index ef194312b..8fca62eec 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -28,6 +28,11 @@ public class ChunkProviderServer implements IChunkProvider { - public final it.unimi.dsi.fastutil.longs.LongSet unloadQueue = new it.unimi.dsi.fastutil.longs.LongArraySet(); // PAIL: private -> public // Paper + public final Set unloadQueue = Sets.newHashSet(); public final ChunkGenerator chunkGenerator; private final IChunkLoader chunkLoader; + // Paper start - chunk save stats @@ -55,7 +55,7 @@ index 19f10fed..9159ed02 100644 return false; } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index ceef6e45..d275eb19 100644 +index ceef6e456..d275eb194 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -32,7 +32,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { @@ -90,5 +90,5 @@ index ceef6e45..d275eb19 100644 boolean flag; -- -2.13.1.windows.2 +2.13.0