From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 9 Aug 2017 17:51:22 -0500 Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java index ecb6378a285dff4b34170410387ebb7a8510a6dc..81713c97f35263f4ab8d14f8b707aac3d6afea11 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -726,7 +726,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { gameprofilerfiller.push("blockEntities"); timings.tileEntityTick.startTiming(); // Spigot if (!this.tileEntityListUnload.isEmpty()) { - this.tickableBlockEntities.removeAll(this.tileEntityListUnload); + // Paper start - Use alternate implementation with faster contains + java.util.Set toRemove = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()); + toRemove.addAll(tileEntityListUnload); + this.tickableBlockEntities.removeAll(toRemove); + // Paper end //this.tileEntityList.removeAll(this.tileEntityListUnload); // Paper - remove unused list this.tileEntityListUnload.clear(); }