From 0baf031f7df850d21977e76f6fae7cc2b007f906 Mon Sep 17 00:00:00 2001 From: MartijnMuijsers Date: Wed, 30 Nov 2022 17:36:15 +0100 Subject: [PATCH] Replace game rules map with optimized collection --- ...-rules-map-with-optimized-collection.patch | 36 +++++++++++++++++++ ...> 0067-Cache-BlockStatePairKey-hash.patch} | 0 ...68-Cache-CubeVoxelShape-shape-array.patch} | 0 ...by-multiplication-in-CubePointRange.patch} | 0 ...ace-parts-by-size-in-CubePointRange.patch} | 0 ...kip-entity-move-if-movement-is-zero.patch} | 0 ...durability-change-equipment-updates.patch} | 0 ...es-on-entities-with-fire-resistance.patch} | 0 ...4-Skip-cloning-advancement-criteria.patch} | 0 ...> 0075-Player-canSee-by-entity-UUID.patch} | 0 ...-Spread-out-sending-all-player-info.patch} | 0 ...player-list-for-sending-player-info.patch} | 0 ...dSendEvent-if-there-are-no-listener.patch} | 0 ...79-Send-multiple-keep-alive-packets.patch} | 0 ...h => 0080-Specific-interval-TPS-API.patch} | 0 ....patch => 0081-5-second-TPS-average.patch} | 0 ...atch => 0082-Measure-last-tick-time.patch} | 0 ...PI.patch => 0083-Last-tick-time-API.patch} | 0 ...-Show-last-tick-time-in-tps-command.patch} | 0 ...-physics-check-before-vehicle-check.patch} | 0 ...086-Variable-main-thread-task-delay.patch} | 0 ... 0087-Reduce-RandomSource-instances.patch} | 0 ....patch => 0088-CPU-cores-estimation.patch} | 0 ... 0089-Add-centralized-AsyncExecutor.patch} | 0 ...=> 0090-Remove-Paper-async-executor.patch} | 0 ... 0091-Remove-Paper-cleaner-executor.patch} | 0 ... => 0092-Remove-background-executor.patch} | 0 ...h => 0093-Remove-bootstrap-executor.patch} | 0 ...0094-Remove-world-upgrade-executors.patch} | 0 ...> 0095-Remove-tab-complete-executor.patch} | 0 ...=> 0096-Remove-text-filter-executor.patch} | 0 31 files changed, 36 insertions(+) create mode 100644 patches/server/0066-Replace-game-rules-map-with-optimized-collection.patch rename patches/server/{0066-Cache-BlockStatePairKey-hash.patch => 0067-Cache-BlockStatePairKey-hash.patch} (100%) rename patches/server/{0067-Cache-CubeVoxelShape-shape-array.patch => 0068-Cache-CubeVoxelShape-shape-array.patch} (100%) rename patches/server/{0068-Replace-division-by-multiplication-in-CubePointRange.patch => 0069-Replace-division-by-multiplication-in-CubePointRange.patch} (100%) rename patches/server/{0069-Replace-parts-by-size-in-CubePointRange.patch => 0070-Replace-parts-by-size-in-CubePointRange.patch} (100%) rename patches/server/{0070-Skip-entity-move-if-movement-is-zero.patch => 0071-Skip-entity-move-if-movement-is-zero.patch} (100%) rename patches/server/{0071-Ignore-durability-change-equipment-updates.patch => 0072-Ignore-durability-change-equipment-updates.patch} (100%) rename patches/server/{0072-Hide-flames-on-entities-with-fire-resistance.patch => 0073-Hide-flames-on-entities-with-fire-resistance.patch} (100%) rename patches/server/{0073-Skip-cloning-advancement-criteria.patch => 0074-Skip-cloning-advancement-criteria.patch} (100%) rename patches/server/{0074-Player-canSee-by-entity-UUID.patch => 0075-Player-canSee-by-entity-UUID.patch} (100%) rename patches/server/{0075-Spread-out-sending-all-player-info.patch => 0076-Spread-out-sending-all-player-info.patch} (100%) rename patches/server/{0076-Optimize-player-list-for-sending-player-info.patch => 0077-Optimize-player-list-for-sending-player-info.patch} (100%) rename patches/server/{0077-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch => 0078-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch} (100%) rename patches/server/{0078-Send-multiple-keep-alive-packets.patch => 0079-Send-multiple-keep-alive-packets.patch} (100%) rename patches/server/{0079-Specific-interval-TPS-API.patch => 0080-Specific-interval-TPS-API.patch} (100%) rename patches/server/{0080-5-second-TPS-average.patch => 0081-5-second-TPS-average.patch} (100%) rename patches/server/{0081-Measure-last-tick-time.patch => 0082-Measure-last-tick-time.patch} (100%) rename patches/server/{0082-Last-tick-time-API.patch => 0083-Last-tick-time-API.patch} (100%) rename patches/server/{0083-Show-last-tick-time-in-tps-command.patch => 0084-Show-last-tick-time-in-tps-command.patch} (100%) rename patches/server/{0084-Collision-physics-check-before-vehicle-check.patch => 0085-Collision-physics-check-before-vehicle-check.patch} (100%) rename patches/server/{0085-Variable-main-thread-task-delay.patch => 0086-Variable-main-thread-task-delay.patch} (100%) rename patches/server/{0086-Reduce-RandomSource-instances.patch => 0087-Reduce-RandomSource-instances.patch} (100%) rename patches/server/{0087-CPU-cores-estimation.patch => 0088-CPU-cores-estimation.patch} (100%) rename patches/server/{0088-Add-centralized-AsyncExecutor.patch => 0089-Add-centralized-AsyncExecutor.patch} (100%) rename patches/server/{0089-Remove-Paper-async-executor.patch => 0090-Remove-Paper-async-executor.patch} (100%) rename patches/server/{0090-Remove-Paper-cleaner-executor.patch => 0091-Remove-Paper-cleaner-executor.patch} (100%) rename patches/server/{0091-Remove-background-executor.patch => 0092-Remove-background-executor.patch} (100%) rename patches/server/{0092-Remove-bootstrap-executor.patch => 0093-Remove-bootstrap-executor.patch} (100%) rename patches/server/{0093-Remove-world-upgrade-executors.patch => 0094-Remove-world-upgrade-executors.patch} (100%) rename patches/server/{0094-Remove-tab-complete-executor.patch => 0095-Remove-tab-complete-executor.patch} (100%) rename patches/server/{0095-Remove-text-filter-executor.patch => 0096-Remove-text-filter-executor.patch} (100%) diff --git a/patches/server/0066-Replace-game-rules-map-with-optimized-collection.patch b/patches/server/0066-Replace-game-rules-map-with-optimized-collection.patch new file mode 100644 index 0000000..ad9813d --- /dev/null +++ b/patches/server/0066-Replace-game-rules-map-with-optimized-collection.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MartijnMuijsers +Date: Wed, 30 Nov 2022 17:35:06 +0100 +Subject: [PATCH] Replace game rules map with optimized collection + +License: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) + +This patch is based on the following mixin: +"collections/gamerules/GameRulesMixin" +Original commit: "new: store gamerules in fastutil hashmap" +By: 2No2Name <2No2Name@web.de> +As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric) +Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.nl.html) + +diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java +index e660a84251bc67435e905aacf628a84156b5d689..dfdd70fccc135b7c1cf89b8e4c2fcdb7738caea7 100644 +--- a/src/main/java/net/minecraft/world/level/GameRules.java ++++ b/src/main/java/net/minecraft/world/level/GameRules.java +@@ -19,6 +19,8 @@ import java.util.function.BiConsumer; + import java.util.function.Function; + import java.util.function.Supplier; + import javax.annotation.Nullable; ++ ++import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; + import net.minecraft.commands.CommandSourceStack; + import net.minecraft.commands.Commands; + import net.minecraft.nbt.CompoundTag; +@@ -118,7 +120,7 @@ public class GameRules { + } + + private GameRules(Map, GameRules.Value> rules) { +- this.rules = rules; ++ this.rules = new Object2ObjectOpenHashMap<>(rules); // Gale - Lithium - replace game rules map with optimized collection + + // Gale start - Airplane - use array for gamerule storage + int arraySize = rules.keySet().stream().mapToInt(key -> key.gameRuleIndex).max().orElse(-1) + 1; diff --git a/patches/server/0066-Cache-BlockStatePairKey-hash.patch b/patches/server/0067-Cache-BlockStatePairKey-hash.patch similarity index 100% rename from patches/server/0066-Cache-BlockStatePairKey-hash.patch rename to patches/server/0067-Cache-BlockStatePairKey-hash.patch diff --git a/patches/server/0067-Cache-CubeVoxelShape-shape-array.patch b/patches/server/0068-Cache-CubeVoxelShape-shape-array.patch similarity index 100% rename from patches/server/0067-Cache-CubeVoxelShape-shape-array.patch rename to patches/server/0068-Cache-CubeVoxelShape-shape-array.patch diff --git a/patches/server/0068-Replace-division-by-multiplication-in-CubePointRange.patch b/patches/server/0069-Replace-division-by-multiplication-in-CubePointRange.patch similarity index 100% rename from patches/server/0068-Replace-division-by-multiplication-in-CubePointRange.patch rename to patches/server/0069-Replace-division-by-multiplication-in-CubePointRange.patch diff --git a/patches/server/0069-Replace-parts-by-size-in-CubePointRange.patch b/patches/server/0070-Replace-parts-by-size-in-CubePointRange.patch similarity index 100% rename from patches/server/0069-Replace-parts-by-size-in-CubePointRange.patch rename to patches/server/0070-Replace-parts-by-size-in-CubePointRange.patch diff --git a/patches/server/0070-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0071-Skip-entity-move-if-movement-is-zero.patch similarity index 100% rename from patches/server/0070-Skip-entity-move-if-movement-is-zero.patch rename to patches/server/0071-Skip-entity-move-if-movement-is-zero.patch diff --git a/patches/server/0071-Ignore-durability-change-equipment-updates.patch b/patches/server/0072-Ignore-durability-change-equipment-updates.patch similarity index 100% rename from patches/server/0071-Ignore-durability-change-equipment-updates.patch rename to patches/server/0072-Ignore-durability-change-equipment-updates.patch diff --git a/patches/server/0072-Hide-flames-on-entities-with-fire-resistance.patch b/patches/server/0073-Hide-flames-on-entities-with-fire-resistance.patch similarity index 100% rename from patches/server/0072-Hide-flames-on-entities-with-fire-resistance.patch rename to patches/server/0073-Hide-flames-on-entities-with-fire-resistance.patch diff --git a/patches/server/0073-Skip-cloning-advancement-criteria.patch b/patches/server/0074-Skip-cloning-advancement-criteria.patch similarity index 100% rename from patches/server/0073-Skip-cloning-advancement-criteria.patch rename to patches/server/0074-Skip-cloning-advancement-criteria.patch diff --git a/patches/server/0074-Player-canSee-by-entity-UUID.patch b/patches/server/0075-Player-canSee-by-entity-UUID.patch similarity index 100% rename from patches/server/0074-Player-canSee-by-entity-UUID.patch rename to patches/server/0075-Player-canSee-by-entity-UUID.patch diff --git a/patches/server/0075-Spread-out-sending-all-player-info.patch b/patches/server/0076-Spread-out-sending-all-player-info.patch similarity index 100% rename from patches/server/0075-Spread-out-sending-all-player-info.patch rename to patches/server/0076-Spread-out-sending-all-player-info.patch diff --git a/patches/server/0076-Optimize-player-list-for-sending-player-info.patch b/patches/server/0077-Optimize-player-list-for-sending-player-info.patch similarity index 100% rename from patches/server/0076-Optimize-player-list-for-sending-player-info.patch rename to patches/server/0077-Optimize-player-list-for-sending-player-info.patch diff --git a/patches/server/0077-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch b/patches/server/0078-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch similarity index 100% rename from patches/server/0077-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch rename to patches/server/0078-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch diff --git a/patches/server/0078-Send-multiple-keep-alive-packets.patch b/patches/server/0079-Send-multiple-keep-alive-packets.patch similarity index 100% rename from patches/server/0078-Send-multiple-keep-alive-packets.patch rename to patches/server/0079-Send-multiple-keep-alive-packets.patch diff --git a/patches/server/0079-Specific-interval-TPS-API.patch b/patches/server/0080-Specific-interval-TPS-API.patch similarity index 100% rename from patches/server/0079-Specific-interval-TPS-API.patch rename to patches/server/0080-Specific-interval-TPS-API.patch diff --git a/patches/server/0080-5-second-TPS-average.patch b/patches/server/0081-5-second-TPS-average.patch similarity index 100% rename from patches/server/0080-5-second-TPS-average.patch rename to patches/server/0081-5-second-TPS-average.patch diff --git a/patches/server/0081-Measure-last-tick-time.patch b/patches/server/0082-Measure-last-tick-time.patch similarity index 100% rename from patches/server/0081-Measure-last-tick-time.patch rename to patches/server/0082-Measure-last-tick-time.patch diff --git a/patches/server/0082-Last-tick-time-API.patch b/patches/server/0083-Last-tick-time-API.patch similarity index 100% rename from patches/server/0082-Last-tick-time-API.patch rename to patches/server/0083-Last-tick-time-API.patch diff --git a/patches/server/0083-Show-last-tick-time-in-tps-command.patch b/patches/server/0084-Show-last-tick-time-in-tps-command.patch similarity index 100% rename from patches/server/0083-Show-last-tick-time-in-tps-command.patch rename to patches/server/0084-Show-last-tick-time-in-tps-command.patch diff --git a/patches/server/0084-Collision-physics-check-before-vehicle-check.patch b/patches/server/0085-Collision-physics-check-before-vehicle-check.patch similarity index 100% rename from patches/server/0084-Collision-physics-check-before-vehicle-check.patch rename to patches/server/0085-Collision-physics-check-before-vehicle-check.patch diff --git a/patches/server/0085-Variable-main-thread-task-delay.patch b/patches/server/0086-Variable-main-thread-task-delay.patch similarity index 100% rename from patches/server/0085-Variable-main-thread-task-delay.patch rename to patches/server/0086-Variable-main-thread-task-delay.patch diff --git a/patches/server/0086-Reduce-RandomSource-instances.patch b/patches/server/0087-Reduce-RandomSource-instances.patch similarity index 100% rename from patches/server/0086-Reduce-RandomSource-instances.patch rename to patches/server/0087-Reduce-RandomSource-instances.patch diff --git a/patches/server/0087-CPU-cores-estimation.patch b/patches/server/0088-CPU-cores-estimation.patch similarity index 100% rename from patches/server/0087-CPU-cores-estimation.patch rename to patches/server/0088-CPU-cores-estimation.patch diff --git a/patches/server/0088-Add-centralized-AsyncExecutor.patch b/patches/server/0089-Add-centralized-AsyncExecutor.patch similarity index 100% rename from patches/server/0088-Add-centralized-AsyncExecutor.patch rename to patches/server/0089-Add-centralized-AsyncExecutor.patch diff --git a/patches/server/0089-Remove-Paper-async-executor.patch b/patches/server/0090-Remove-Paper-async-executor.patch similarity index 100% rename from patches/server/0089-Remove-Paper-async-executor.patch rename to patches/server/0090-Remove-Paper-async-executor.patch diff --git a/patches/server/0090-Remove-Paper-cleaner-executor.patch b/patches/server/0091-Remove-Paper-cleaner-executor.patch similarity index 100% rename from patches/server/0090-Remove-Paper-cleaner-executor.patch rename to patches/server/0091-Remove-Paper-cleaner-executor.patch diff --git a/patches/server/0091-Remove-background-executor.patch b/patches/server/0092-Remove-background-executor.patch similarity index 100% rename from patches/server/0091-Remove-background-executor.patch rename to patches/server/0092-Remove-background-executor.patch diff --git a/patches/server/0092-Remove-bootstrap-executor.patch b/patches/server/0093-Remove-bootstrap-executor.patch similarity index 100% rename from patches/server/0092-Remove-bootstrap-executor.patch rename to patches/server/0093-Remove-bootstrap-executor.patch diff --git a/patches/server/0093-Remove-world-upgrade-executors.patch b/patches/server/0094-Remove-world-upgrade-executors.patch similarity index 100% rename from patches/server/0093-Remove-world-upgrade-executors.patch rename to patches/server/0094-Remove-world-upgrade-executors.patch diff --git a/patches/server/0094-Remove-tab-complete-executor.patch b/patches/server/0095-Remove-tab-complete-executor.patch similarity index 100% rename from patches/server/0094-Remove-tab-complete-executor.patch rename to patches/server/0095-Remove-tab-complete-executor.patch diff --git a/patches/server/0095-Remove-text-filter-executor.patch b/patches/server/0096-Remove-text-filter-executor.patch similarity index 100% rename from patches/server/0095-Remove-text-filter-executor.patch rename to patches/server/0096-Remove-text-filter-executor.patch