From 3a2986e746a9405c69f534bff9addf6ff6eb7e84 Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Mon, 9 Aug 2021 18:36:45 +0000 Subject: [PATCH] Optimize entity tracker passenger checks (#6361) When a ServerEntity instance is first constructed, it uses a pre-Java 9 empty collection, but passengers use Guava ImmutableList. When comparing the two collections via Object#equals we miss out on an opportunity to reduce the check to little more than a reference equality check (which is very fast). --- ...mize-entity-tracker-passenger-checks.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 patches/server/Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/Optimize-entity-tracker-passenger-checks.patch b/patches/server/Optimize-entity-tracker-passenger-checks.patch new file mode 100644 index 0000000000..be13d9e403 --- /dev/null +++ b/patches/server/Optimize-entity-tracker-passenger-checks.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andrew Steinborn +Date: Sun, 8 Aug 2021 00:52:54 -0400 +Subject: [PATCH] Optimize entity tracker passenger checks + + +diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/server/level/ServerEntity.java ++++ b/src/main/java/net/minecraft/server/level/ServerEntity.java +@@ -0,0 +0,0 @@ public class ServerEntity { + this.trackedPlayers = trackedPlayers; + // CraftBukkit end + this.ap = Vec3.ZERO; +- this.lastPassengers = Collections.emptyList(); ++ this.lastPassengers = com.google.common.collect.ImmutableList.of(); // Paper - optimize passenger checks + this.level = worldserver; + this.broadcast = consumer; + this.entity = entity;