Performance Improvements

This commit is contained in:
Daniel Mills
2021-07-17 03:20:10 -04:00
parent 4cd3f9bd38
commit 487dab793a
9 changed files with 42 additions and 28 deletions

View File

@@ -25,10 +25,13 @@ import com.volmit.iris.engine.hunk.io.HunkRegion;
import com.volmit.iris.engine.hunk.io.HunkRegionSlice;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.parallel.GridLock;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.math.M;
import com.volmit.iris.util.oldnbt.ByteArrayTag;
import com.volmit.iris.util.oldnbt.CompoundTag;
import com.volmit.iris.util.oldnbt.Tag;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import org.bukkit.block.TileState;
import org.bukkit.block.data.BlockData;
@@ -153,6 +156,7 @@ public class ParallaxRegion extends HunkRegion {
}
public synchronized void save() throws IOException {
PrecisionStopwatch p = PrecisionStopwatch.start();
blockSlice.save();
objectSlice.save();
entitySlice.save();
@@ -160,6 +164,7 @@ public class ParallaxRegion extends HunkRegion {
updateSlice.save();
saveMetaHunk();
super.save();
Iris.debug("Saved Parallax Region " + C.AQUA + getX() + "," + getZ() + C.LIGHT_PURPLE + " in " + C.RED + Form.duration(p.getMilliseconds(), 0));
}
public int unload() {

View File

@@ -22,8 +22,10 @@ import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.scheduling.J;
import org.bukkit.block.TileState;
import org.bukkit.block.data.BlockData;
@@ -232,11 +234,12 @@ public class ParallaxWorld implements ParallaxAccess {
@Override
public void saveAll() {
J.a(this::saveAllNOW);
MultiBurst.burst.lazy(this::saveAllNOW);
}
@Override
public void saveAllNOW() {
Iris.debug("Saving " + C.GREEN + loadedRegions.size() + " Parallax Regions");
for (ParallaxRegion i : loadedRegions.v()) {
if (save.contains(key(i.getX(), i.getZ()))) {
save(i.getX(), i.getZ());