-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
None
-
Win10, 5900X
-
3464-Spigot-ffceeae-e9f972d (MC: 1.18.2)
-
Yes
Setting biomes using World#setBiome, delegating to CraftWorld#setBiome will create a new ResourceKey every time a biome is set, using String#intern on the biome ID obtained from the bukkit biome, to convert it to an internal BiomeBase. This is an extremely resource-costly method and setting relatively small regions of biome (in this example a 91x91x384 region) can have a massive performance impact on the server.
PlotSquared uses a chunk-by-chunk approach that attempts to place a chunk at a time, without overloading the server, however the repeated use of String#intern overloads the server very quickly leading to very high tick times when biomes are being placed.
Timings: https://timings.spigotmc.org/?url=alalexubuc
Spark profile: https://spark.lucko.me/60E2fYza9B