Remove use of FastUtil for unload queue, very bad performance

This commit is contained in:
Aikar 2017-07-27 00:25:13 -04:00
parent fabe552ae9
commit 11f2794bbe
2 changed files with 8 additions and 21 deletions

View file

@ -1,4 +1,4 @@
From 147fdac9554b71e235db05a344cd6d5dbda149a4 Mon Sep 17 00:00:00 2001 From 92c11ac4d9226bc25c8f4b82fbf686c30b8c4660 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Wed, 30 Mar 2016 02:13:24 -0400 Date: Wed, 30 Mar 2016 02:13:24 -0400
Subject: [PATCH] Use Optimized Collections Subject: [PATCH] Use Optimized Collections
@ -12,21 +12,8 @@ and could not create anything faster than fastutil.
These collections are super fast as seen These collections are super fast as seen
http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/ 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<Long> 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 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 --- a/src/main/java/net/minecraft/server/DataWatcher.java
+++ b/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; @@ -12,6 +12,7 @@ import java.util.Map;
@ -47,5 +34,5 @@ index 1507f97f..fe848445 100644
private boolean f = true; private boolean f = true;
private boolean g; private boolean g;
-- --
2.13.1.windows.2 2.13.0

View file

@ -1,4 +1,4 @@
From a4983ae26e02ae36edd96e20963b3c145ce27ee4 Mon Sep 17 00:00:00 2001 From a64e03a4b423c7339dacffcc1c14168d7f2aba7f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 4 Nov 2016 02:12:10 -0400 Date: Fri, 4 Nov 2016 02:12:10 -0400
Subject: [PATCH] Chunk Save Stats Debug Option 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. 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 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 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/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 { @@ -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<Long> unloadQueue = Sets.newHashSet();
public final ChunkGenerator chunkGenerator; public final ChunkGenerator chunkGenerator;
private final IChunkLoader chunkLoader; private final IChunkLoader chunkLoader;
+ // Paper start - chunk save stats + // Paper start - chunk save stats
@ -55,7 +55,7 @@ index 19f10fed..9159ed02 100644
return false; return false;
} }
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java 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 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/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 { @@ -32,7 +32,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
@ -90,5 +90,5 @@ index ceef6e45..d275eb19 100644
boolean flag; boolean flag;
-- --
2.13.1.windows.2 2.13.0