Commit graph

7 commits

Author SHA1 Message Date
Spottedleaf
d77bc736a0 Improve async login (#3189)
Add helper functions to ChunkProviderServer to make this easier
for other uses

Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
2020-04-19 10:58:02 -07:00
Aikar
9fc8102ef5 Load Spawn Chunks Asynchronously and Spiral Out
Ensures absolute center is first in priority
Speeds up server startup
2020-04-19 06:01:07 -04:00
Spottedleaf
973a5271c3 Port 04-Util.patch from Tuinity (#3136) 2020-04-12 22:34:18 -07:00
Aikar
81a57f3fde Fix issues with 167 causing crashes due to missing chunks - Fixes #3122
Forgot to flip the pending boolean back to false, causing it to copy
empty data on the next tick if nothing else triggered a load.

haven't managed to actually reproduce the crash others got, but did
verify that the bad copy was occurring erasing the data.

also fixed a bug with chunk load callback not executing before
another one was scheduled.
2020-04-10 14:11:46 -04:00
Aikar
587c1e02a5 Improve Optimize Memory use logic to make iterator safer and fix bad plugins like P2
Accessing world state async is bad mkay. But we know you didn't do it city <3
2020-04-08 21:07:59 -04:00
Aikar
00570dc4bb Fix incorrect keyword use on visibleChunksClone 2020-04-08 04:12:48 -04:00
Aikar
988431a872 Optimize PlayerChunkMap memory use for visibleChunks
No longer clones visible chunks which is causing massive memory
allocation issues, likely the source of Humongous Objects on large servers.

Instead we just synchronize, clear and rebuild, reusing the same object buffers
as before with only 2 small objects created (FastIterator/MapEntry)

This should result in siginificant memory use reduction and improved GC behavior.
2020-04-08 03:09:05 -04:00