Commit graph

1153 commits

Author SHA1 Message Date
Aikar
1c20143e3c 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 00:32:08 -04:00
md_5
b2f9eaea66 Rebuild patches 2016-03-19 14:46:10 +11:00
md_5
9571a3df27 SPIGOT-1964: Remove 1.9.1 patch 2016-03-19 08:38:35 +11:00
md_5
57ae525e89 SPIGOT-1953: Don't copy NavigationListener Map on Iteration. 2016-03-18 14:41:42 +11:00
md_5
bd4ee28e5c Fix patch conflicts 2016-03-12 20:59:15 +11:00
md_5
84c91ad013 Fix patch conflicts. 2016-03-12 11:24:40 +11:00
md_5
c81789f27e SPIGOT-1864: Improve entity collision capping 2016-03-10 16:23:26 +11:00
md_5
d56589633c SPIGOT-1814: Crop growth rates inverted. 2016-03-07 22:16:12 +11:00
md_5
7e97cc1de5 Rebuild patches 2016-03-07 19:52:16 +11:00
md_5
85ec661cbb Patch rebuild 2016-03-06 16:43:38 +11:00
md_5
2385111907 Patch rebuild 2016-03-06 14:36:33 +11:00
md_5
b595dee001 Correct syncChunkLoadPostTimer stop position. 2016-03-05 16:38:55 +11:00
md_5
31d6ee265a Rebuild patches. 2016-03-04 15:26:28 +11:00
md_5
e380f77579 Add missed chunkGC timings start
Pointed out by Andi in Spigot #53
2016-03-03 20:22:48 +11:00
md_5
328f147493 SPIGOT-1672: Implement regressed SpawnerSpawnEvent 2016-03-03 19:46:15 +11:00
md_5
ec51994608 SPIGOT-1584: Entity mount / dismount events are backwards 2016-03-02 06:41:39 +11:00
md_5
97d21d612c Rebuild patches 2016-03-01 17:36:41 +11:00
md_5
b04e7cb3a8 SPIGOT-1546: Use isPassenger, not misleading getVehicle 2016-03-01 14:47:13 +11:00
md_5
ed6fb19564 Patch rebuild 2016-03-01 11:27:36 +11:00
md_5
3a8393c53a Patch rebuild. 2016-03-01 11:23:45 +11:00
md_5
1aea01cf29 Fix accidental omission of R revision number in version. 2016-03-01 11:08:52 +11:00
md_5
cf5b4b8828 Update to Minecraft 1.9 2016-03-01 08:33:06 +11:00
md_5
02af1ff93f SPIGOT-1499: Outdated server message not working 2016-02-21 19:22:37 +11:00
Zach Brown
24d21453cf SPIGOT-596: Fix EntityDismountEvent 2015-10-25 17:12:43 -05:00
md_5
af5daaeeeb Fix incorrect logic in entity tick limiter to match tile entity tick limiter.
Simply a fix to the small performance shortpath.
2015-10-07 17:23:59 +11:00
md_5
f70bbd9ade SPIGOT-1208: Don't skip ticks for explosive creepers. 2015-10-03 11:51:46 +10:00
Aikar
7e89c54e7c 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-09 21:16:42 -04:00
Aikar
bbc7b0999f 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-09 20:48:46 -04:00
md_5
e006d41117 Rebuild patches. 2015-09-01 18:07:28 +10:00
md_5
1915993318 SPIGOT-1117: Barrier blocks are transparent for xray purposes 2015-08-07 15:34:06 +10:00
Melair
af58d5536e Ensure that inactiveTick on EntityItem obeys magic values for age and pickupDelay. 2015-07-29 10:40:32 +01:00
md_5
f468d641ab Update for latest CraftBukkit changes. 2015-07-30 17:22:16 +10:00
md_5
2f2cf5ae5b Update to Minecraft 1.8.8 (Pre-)Release. 2015-07-27 22:20:54 +10:00
Thinkofdeath
c9ff2e2b51 SPIGOT-1050: Add a missing case in the disable usercache saving option 2015-07-23 21:43:27 +01:00
Aikar
2b62b33603 Don't allow sendPacket once disconnect has been processed. 2015-07-23 16:23:21 +10:00
md_5
3902c978d4 Clear Packet Queue on Disconnect 2015-07-22 19:04:46 +10:00
md_5
68e3c1e364 Add note about BungeeCord when in offline mode.
See PR #10 for motivation.
2015-07-13 19:22:08 +10:00
md_5
fc3e568b8d SPIGOT-997: Add restart API for server. 2015-07-13 19:12:24 +10:00
md_5
a5da72e7fa Use Map for getPlayer(String) lookup. 2015-07-13 19:05:30 +10:00
md_5
048aee04d3 Rebuild patches for updates. 2015-07-12 19:59:20 +10:00
md_5
84c55fb710 Fix conflicts. 2015-07-10 22:33:16 +10:00
md_5
4f889d12fd Rebuild patches. 2015-06-21 09:24:26 +10:00
Thinkofdeath
169f71cf52 Add a missing Spigot comment 2015-06-16 10:24:54 +01:00
Thinkofdeath
5338c3c023 Remove a special case in vanilla's chunk saving as it interferes with our autosave changes 2015-06-16 10:19:25 +01:00
md_5
49a8cf4716 Fix patches from camera API 2015-06-09 09:16:01 +10:00
md_5
8203d6f696 Remove UserCache import as it is used now. 2015-06-07 20:03:31 +10:00
md_5
7e51dc4e18 Fix merge conflicts from access transform update. 2015-06-06 19:47:02 +10:00
md_5
ef79a102b7 Update to Minecraft 1.8.7 2015-06-05 20:56:58 +10:00
Antony Riley
0712a5c5ff Fix map decorations to store UUIDs internally. 2015-06-05 09:43:14 +03:00
md_5
0730a13e5c Remove custom links patch. 2015-06-01 19:22:52 +10:00