b8edb0e130
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 6b34da8f SPIGOT-7467: Add getAddress to RemoteConsoleCommandSender CraftBukkit Changes: db4ba2897 SPIGOT-7467: Add getAddress to RemoteConsoleCommandSender 4f7ff4dec PR-1246: Add missing AbstractTestingBase to tests which need them f70a7b68d SPIGOT-7465, MC-264979: Fresh installations print NoSuchFileException for server.properties 8ef7afef6 PR-1240: Call BlockGrowEvent for vines that are growing on additional sides of an existing vine block Spigot Changes: d2eba2c8 Rebuild patches
53 Zeilen
2.5 KiB
Diff
53 Zeilen
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Sat, 4 Apr 2020 17:00:20 -0700
|
|
Subject: [PATCH] Consolidate flush calls for entity tracker packets
|
|
|
|
Most server packets seem to be sent from here, so try to avoid
|
|
expensive flush calls from them.
|
|
|
|
This change was motivated due to local testing:
|
|
|
|
- My server spawn has 130 cows in it (for testing a prev. patch)
|
|
- Try to let 200 players join spawn
|
|
|
|
Without this change, I could only get 20 players on before they
|
|
all started timing out due to the load put on the Netty I/O threads.
|
|
|
|
With this change I could get all 200 on at 0ms ping.
|
|
|
|
(one of the primary issues is that my CPU is kinda trash, and having
|
|
4 extra threads at 100% is just too much for it).
|
|
|
|
So in general this patch should reduce Netty I/O thread load.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
|
index 2a31265ac49b7a6e32105530d00952ee0c0d4331..488a253e218409b5f0b4a872cee0928578fa7582 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
|
@@ -656,7 +656,24 @@ public class ServerChunkCache extends ChunkSource {
|
|
this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
|
|
gameprofilerfiller.pop();
|
|
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
|
|
+ // Paper start - controlled flush for entity tracker packets
|
|
+ List<net.minecraft.network.Connection> disabledFlushes = new java.util.ArrayList<>(this.level.players.size());
|
|
+ for (ServerPlayer player : this.level.players) {
|
|
+ net.minecraft.server.network.ServerGamePacketListenerImpl connection = player.connection;
|
|
+ if (connection != null) {
|
|
+ connection.connection.disableAutomaticFlush();
|
|
+ disabledFlushes.add(connection.connection);
|
|
+ }
|
|
+ }
|
|
+ try { // Paper end - controlled flush for entity tracker packets
|
|
this.chunkMap.tick();
|
|
+ // Paper start - controlled flush for entity tracker packets
|
|
+ } finally {
|
|
+ for (net.minecraft.network.Connection networkManager : disabledFlushes) {
|
|
+ networkManager.enableAutomaticFlush();
|
|
+ }
|
|
+ }
|
|
+ // Paper end - controlled flush for entity tracker packets
|
|
}
|
|
}
|
|
|