Commit Graph

1166 Commits

Author SHA1 Message Date
Aikar
a308ede0bb Optimize Navigation Listener
Replace WeakHashMap with an ArrayList and manually manage object
lifecycle. Gives superior iteration performance at a slight cost
to removal performance and also ensures entities are removed immediately
upon losing their validity within the world.

Additionally, change listener registration to be done upon world add
instead of immediate up creation. This provides benefit of only
registering and ticking real Navigation objects, and not invalid
entities (cancelled entity spawns for example).
2016-03-19 17:49:22 -05:00
md_5
f368e2543d Rebuild patches 2016-03-18 23:00:50 -05:00
md_5
de235263df SPIGOT-1964: Remove 1.9.1 patch 2016-03-18 21:35:37 -05:00
md_5
409596021c SPIGOT-1953: Don't copy NavigationListener Map on Iteration. 2016-03-17 23:31:20 -05:00
md_5
f6fe337ed2 Rebuild patches. 2016-03-15 22:37:17 -05:00
md_5
7b28ee7d2b Patch rebuild 2016-03-14 00:58:34 -05:00
md_5
bbac895bc9 Fix patch conflicts 2016-03-12 13:54:10 -06:00
md_5
a638cf7e03 Patch rebuild. 2016-03-11 20:12:50 -06:00
md_5
b1e5adbd8a Fix patch conflicts. 2016-03-11 20:12:41 -06:00
md_5
b6be4076a3 Patch rebuild. 2016-03-11 15:20:51 -06:00
md_5
443691d22d SPIGOT-1864: Improve entity collision capping 2016-03-10 15:09:29 -06:00
md_5
7d05145bf4 SPIGOT-1814: Crop growth rates inverted. 2016-03-07 15:38:25 -06:00
md_5
b2bbaa0190 Rebuild patches 2016-03-07 15:37:49 -06:00
md_5
4228de7030 Patch rebuild 2016-03-06 14:51:23 -06:00
md_5
ccba51cd38 Patch rebuild 2016-03-06 14:51:10 -06:00
Zach Brown
a34a886ff7 Revert "Update to latest and rebuild ALL patches"
This reverts commit 141ef5a6dc.
2016-03-06 14:49:47 -06:00
Zach Brown
141ef5a6dc Update to latest and rebuild ALL patches 2016-03-06 14:37:28 -06:00
md_5
61ab738d3c Patch rebuild 2016-03-05 15:34:34 -06:00
md_5
4b2212247d Correct syncChunkLoadPostTimer stop position. 2016-03-05 15:34:23 -06:00
md_5
2298695b41 Rebuild patches. 2016-03-03 23:49:30 -06:00
md_5
c169c4a685 Add missed chunkGC timings start
Pointed out by Andi in Spigot #53
2016-03-03 03:46:57 -06:00
md_5
f3147c4451 SPIGOT-1672: Implement regressed SpawnerSpawnEvent 2016-03-03 03:46:57 -06:00
md_5
7fe3d4c009 Rebuild patches. 2016-03-03 03:46:57 -06:00
md_5
216dd304c5 Patch rebuild. 2016-03-03 03:46:57 -06:00
md_5
f68b7307db SPIGOT-1584: Entity mount / dismount events are backwards 2016-03-03 03:46:57 -06:00
md_5
ea8cad9f21 Rebuild patches. 2016-03-03 03:46:57 -06:00
md_5
aa90f53d4b Rebuild patches 2016-03-03 03:46:57 -06:00
md_5
db3b10ae30 SPIGOT-1546: Use isPassenger, not misleading getVehicle 2016-03-03 03:46:56 -06:00
md_5
c33773ec93 Patch rebuild 2016-03-03 03:46:56 -06:00
md_5
907e323aa6 Patch rebuild. 2016-03-03 03:46:56 -06:00
md_5
4eab08fba1 Fix accidental omission of R revision number in version. 2016-03-03 03:46:56 -06:00
md_5
adb92a86db Update to Minecraft 1.9 2016-03-03 03:46:48 -06:00
md_5
e51180b777 SPIGOT-1499: Outdated server message not working 2016-03-03 03:46:48 -06:00
Zach Brown
5be55c33e4 SPIGOT-596: Fix EntityDismountEvent 2015-10-27 22:33:28 -05:00
md_5
6360da3884 Fix incorrect logic in entity tick limiter to match tile entity tick limiter.
Simply a fix to the small performance shortpath.
2015-10-07 21:24:35 -05:00
md_5
b7124e06be SPIGOT-1208: Don't skip ticks for explosive creepers. 2015-10-02 22:43:17 -05:00
Aikar
88826e053a Don't sleep between chunk saves
For some unknown reason, Minecraft is sleeping 10ms between every single chunk being saved to disk.
Under high chunk load/unload activity (lots of movement / teleporting), this causes the chunk unload queue
to build up in size.

This has multiple impacts:
1) Performance of the unload queue itself - The save thread is pretty ineffecient for how it accesses it
   By letting the queue get larger, checking and popping work off the queue can get less performant.
2) Performance of chunk loading - As with #1, chunk loads also have to check this queue when loading
   chunk data so that it doesn't load stale data if new data is pending write to disk.
3) Memory Usage - The entire chunk has been serialized to NBT, and now sits in this queue. This leads to
   elevated memory usage, and then the objects used in the serialization sit around longer than needed,
   resulting in promotion to Old Generation instead of dying young.

If there is work to do, then the thread should be doing its work, and only sleep when it is done.
2015-09-10 15:46:34 -05:00
Aikar
c95273f973 Optimize Chunk Saving Memory Allocation and Compression
Minecraft ineffeciently uses OutputStreams by calling .write(int) on the stream.
For Chunks, this is a DeflaterOutputStream, which allocates a single byte EVERY write.

This is causing the server to allocate tons of new byte[1] objects.
Additionally, this is very ineffecient for the Deflate process.

By Buffering Writes the same way it already is Buffering Reads, we will
write to the stream much more effeciently.

Also a more effecient RegionFile zero'ing for new chunks to speed up
new chunk generation.
2015-09-10 15:46:28 -05:00
md_5
ad15d9065d Rebuild patches. 2015-09-01 17:41:42 -05:00
md_5
38a38e00e6 SPIGOT-1117: Barrier blocks are transparent for xray purposes 2015-08-10 19:41:03 -05:00
Melair
f08d887fbf Ensure that inactiveTick on EntityItem obeys magic values for age and pickupDelay. 2015-07-31 18:04:11 -05:00
md_5
6a6ecc5d1d Update for latest CraftBukkit changes. 2015-07-30 22:11:20 -05:00
md_5
4e9d1b2b24 Update to Minecraft 1.8.8 (Pre-)Release. 2015-07-27 17:01:45 -05:00
Thinkofdeath
060c59ea95 SPIGOT-1050: Add a missing case in the disable usercache saving option 2015-07-23 18:24:16 -05:00
Aikar
d7307859fa Don't allow sendPacket once disconnect has been processed. 2015-07-23 04:38:39 -07:00
md_5
8ae7fb531a Clear Packet Queue on Disconnect 2015-07-23 04:38:32 -07:00
md_5
301396a116 Add note about BungeeCord when in offline mode.
See PR #10 for motivation.
2015-07-14 08:18:22 -07:00
md_5
8fecf733fe SPIGOT-997: Add restart API for server. 2015-07-14 08:18:22 -07:00
md_5
a457345b27 Use Map for getPlayer(String) lookup. 2015-07-14 08:18:21 -07:00
md_5
62112bb526 Rebuild patches for updates. 2015-07-14 08:18:21 -07:00