CavePVP-Stuff/cSpigot-master/spigot-server-Patches/0107-Pull-in-a-PaperSpigot-patch-to-improve-writing-of-fi.patch
2023-05-01 19:59:40 +01:00

51 lines
2.0 KiB
Diff

From b692fd470ae7f59ba361a0d0eea4bf4c73b6b344 Mon Sep 17 00:00:00 2001
From: Poweruser_rs <poweruser.rs@hotmail.com>
Date: Mon, 16 Nov 2015 23:22:40 +0100
Subject: [PATCH] Pull in a PaperSpigot patch to improve writing of files in
RegionFile
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
index f44c9e8dc..3a1bd5b8f 100644
--- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -14,7 +14,7 @@ import java.util.zip.InflaterInputStream;
public class RegionFile {
- private static final byte[] a = new byte[4096];
+ private static final byte[] a = new byte[4096]; // Spigot - note: if this ever changes to not be 4096 bytes, update constructor! // PAIL: empty 4k block
private final File b;
private RandomAccessFile c;
private final int[] d = new int[1024];
@@ -55,13 +55,10 @@ public class RegionFile {
int i;
if (this.c.length() < 4096L) {
- for (i = 0; i < 1024; ++i) {
- this.c.writeInt(0);
- }
-
- for (i = 0; i < 1024; ++i) {
- this.c.writeInt(0);
- }
+ // Spigot start - more effecient chunk zero'ing
+ this.c.write(RegionFile.a);
+ this.c.write(RegionFile.a);
+ // Spigot end
this.g += 8192;
}
@@ -203,7 +200,7 @@ public class RegionFile {
}
public DataOutputStream b(int i, int j) {
- return this.d(i, j) ? null : new DataOutputStream(new DeflaterOutputStream(new ChunkBuffer(this, i, j)));
+ return this.d(i, j) ? null : new DataOutputStream(new java.io.BufferedOutputStream(new DeflaterOutputStream(new ChunkBuffer(this, i, j)))); // Spigot - use a BufferedOutputStream to greatly improve file write performance
}
protected synchronized void a(int i, int j, byte[] abyte, int k) {
--
2.13.3