High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
Go to file
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
Bukkit-Patches Update to Minecraft 1.8.8 (Pre-)Release. 2015-07-27 22:20:54 +10:00
CraftBukkit-Patches Don't sleep between chunk saves 2015-09-09 21:16:42 -04:00
Spigot-API-Patches Rebuild patches 2015-08-02 01:56:08 -05:00
Spigot-Server-Patches Rebuild patches 2015-09-01 20:14:41 -05:00
.gitignore Finish removing old gitmodules stuff that should've never lasted this 2014-11-29 23:59:27 -08:00
applyPatches.sh Fix applyPatches.sh not correctly pulling bukkit updates 2015-01-24 01:00:49 +00:00
pom.xml Update PaperSpigot to Minecraft 1.8 2014-11-27 17:17:45 -08:00
README.md Fix README.md link 2014-11-30 16:19:13 -06:00
rebuildPatches.sh Better msysgit support in rebuildPatches 2015-04-17 03:05:37 -07:00

PaperSpigot CI Status Travis Status

High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.

IRC Support and Project Discussion

How To

Download a copy of PaperTools.jar from our buildserver here: https://ci.destroystokyo.com/job/PaperSpigot-BuildTools/

Place PaperTools.jar into an empty directory and run it with java -jar PaperTools.jar from Git-Bash/Bash

It requires you have git installed on your local system as well as JDK 7 or above.

How To (Advanced & Legacy Users)

After running the PaperTools jar, you can compile at any time. A brief overview is provided below. For more novice users, we recommend you avoid these steps and stick to the PaperTools.jar build tool.

Apply Patches : ./applyPatches.sh

Create patch for server

cd PaperSpigot-Server

Add your file for commit : git add <file>

Commit : git commit -m <msg>

cd ..

Create Patch ./rebuildPatches.sh

Create patch for API

cd Paperspigot-API

Add your file for commit : git add <file>

Commit : git commit -m <msg>

cd ..

Create Patch ./rebuildPatches.sh

Compilation

We use maven to handle our dependencies.

  • Install Maven 3
  • Clone this repo and: mvn clean install