Commit Graph

1132 Commits

Author SHA1 Message Date
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
md_5 5683ee8585 Fix conflicts. 2015-07-14 08:17:50 -07:00
md_5 cf58c06c01 Rebuild patches. 2015-06-20 22:03:12 -05:00
Thinkofdeath 0aa4a6c88c Add a missing Spigot comment 2015-06-16 06:01:34 -07:00
Thinkofdeath 208f7a2e3b Remove a special case in vanilla's chunk saving as it interferes with our autosave changes 2015-06-16 06:01:21 -07:00
md_5 b59cf404af Fix patches from camera API 2015-06-10 22:26:46 -05:00
md_5 f5e295d087 Remove UserCache import as it is used now. 2015-06-07 15:47:52 -05:00
md_5 41e8bf6c5c Fix merge conflicts from access transform update. 2015-06-06 12:01:23 -05:00
md_5 a5bd933c3a Update to Minecraft 1.8.7 2015-06-05 05:26:00 -07:00
Antony Riley 1f6afb8934 Fix map decorations to store UUIDs internally. 2015-06-05 05:26:00 -07:00
md_5 7639a2f972 Remove custom links patch. 2015-06-05 05:26:00 -07:00
md_5 619f854054 SPIGOT-945 - random light ticking not called whenoptimal chunks is zero. 2015-06-05 05:25:59 -07:00
md_5 1865d856c6 Rebuild patches for scoreboard API pull to Bukkit. 2015-05-30 01:03:26 -05:00
Thinkofdeath 566d52f182 SPIGOT-929: Remove the hopper ticks patch 2015-05-27 23:54:24 -05:00
Thinkofdeath 060c7ee7c0 SPIGOT-927: Only schedule ticks for blocks in loaded chunks 2015-05-27 23:54:17 -05:00
md_5 015e038b89 Add back hopper tick scheduling
Tick a hopper only if certain conditions have changed i.e. inventory changes, redstone updates, etc.
2015-05-27 23:53:59 -05:00
md_5 f3abde1675 Fix crop growth patch 2015-05-27 23:53:48 -05:00
olivervscreeper 48c32652a2 Added growth rate modifier to NetherWart 2015-05-27 23:53:33 -05:00
Ginger Geek e02c239421 Allow specifying location of spigot.yml
As requested here: http://www.spigotmc.org/threads/specify-location-of-spigot-yml.67747/
2015-05-27 23:53:24 -05:00
md_5 2c46441a7b Update to Minecraft 1.8.6 2015-05-25 15:24:33 -05:00
Thinkofdeath e6c909c623 Update to 1.8.5 2015-05-23 12:03:12 -05:00
Thinkofdeath 033b54d5de Update to 1.8.4 2015-05-18 16:56:05 -05:00
Evan Haskell 7b3e9e5197 Fix tile tick capping variable becoming out of sync 2015-05-10 19:17:28 -05:00
md_5 5ce6c2914b Fix exiting due to count condition eating packets. 2015-04-21 17:27:48 -05:00
Thinkofdeath cbef2f32fe Fix a deadlock that could happen in offline mode when shutting down the server 2015-04-21 17:27:42 -05:00
md_5 cf6a7ce46d Use CLQ for main thread tasks.
Means netty threads aren't blocked for long synchronisations whilst tasks are running.
2015-04-21 17:27:35 -05:00
Thinkofdeath 943a2a3782 Upstream merge 2015-04-18 16:00:01 -05:00
Thinkofdeath ee319fcbb2 Improve NBTReadLimiter 2015-04-16 15:36:08 -05:00
Thinkofdeath fbc208645c Upstream merge 2015-04-16 15:36:01 -05:00
md_5 7a214c95e6 Rebuild #3 2015-04-08 22:47:37 -05:00
md_5 8b5be7ad8e Rebuild #2 2015-04-08 22:47:31 -05:00
md_5 1bd341bf82 Rebuild #2 2015-04-08 22:47:25 -05:00
md_5 222fd361e3 Hash rebuild 2015-04-08 22:28:28 -05:00
md_5 335170cdb2 SPIGOT-750: Barrier blocks are transparent for xray purposes 2015-04-08 21:48:49 -05:00
Thinkofdeath aa1203137a Patch rebuild 2015-04-06 17:27:54 -05:00