Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-12-25 02:20:07 +01:00
~1/3 faster history writing with small caching
Dieser Commit ist enthalten in:
Ursprung
916c080310
Commit
836b7a9750
@ -132,6 +132,9 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet {
|
|||||||
int lx;
|
int lx;
|
||||||
int ly;
|
int ly;
|
||||||
int lz;
|
int lz;
|
||||||
|
// 16*16*4
|
||||||
|
byte[] buff = new byte[1024];
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(OutputStream out, int x, int y, int z) throws IOException {
|
public void write(OutputStream out, int x, int y, int z) throws IOException {
|
||||||
@ -144,13 +147,16 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet {
|
|||||||
int x16 = (rx >> 8) & 0xF;
|
int x16 = (rx >> 8) & 0xF;
|
||||||
int z16 = (rz >> 8) & 0xF;
|
int z16 = (rz >> 8) & 0xF;
|
||||||
byte b4 = MathMan.pair16(x16, z16);
|
byte b4 = MathMan.pair16(x16, z16);
|
||||||
out.write(b1);
|
System.arraycopy(new byte[] {b1, b2, b3, b4}, 0, buff, index, 4);
|
||||||
out.write(b2);
|
index += 4;
|
||||||
out.write(b3);
|
if (index == 1024) {
|
||||||
out.write(b4);
|
out.write(buff);
|
||||||
|
buff = new byte[1024];
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] buffer = new byte[4];
|
final byte[] buffer = new byte[4];
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int readX(FaweInputStream in) throws IOException {
|
public int readX(FaweInputStream in) throws IOException {
|
||||||
@ -170,23 +176,30 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet {
|
|||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
posDel = new FaweStreamPositionDelegate() {
|
posDel = new FaweStreamPositionDelegate() {
|
||||||
final byte[] buffer = new byte[5];
|
|
||||||
int lx;
|
int lx;
|
||||||
int ly;
|
int ly;
|
||||||
int lz;
|
int lz;
|
||||||
|
// 16*16*5
|
||||||
|
byte[] buff = new byte[1280];
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(OutputStream stream, int x, int y, int z) throws IOException {
|
public void write(OutputStream out, int x, int y, int z) throws IOException {
|
||||||
int rx = -lx + (lx = x);
|
int rx = -lx + (lx = x);
|
||||||
int ry = -ly + (ly = y);
|
int ry = -ly + (ly = y);
|
||||||
int rz = -lz + (lz = z);
|
int rz = -lz + (lz = z);
|
||||||
stream.write((rx) & 0xff);
|
System.arraycopy(new byte[] {(byte) ((rx) & 0xff), (byte) (((rx) >> 8) & 0xff), (byte) ((rz) & 0xff),
|
||||||
stream.write(((rx) >> 8) & 0xff);
|
(byte) (((rz) >> 8) & 0xff), (byte) ry}, 0, buff, index, 5);
|
||||||
stream.write((rz) & 0xff);
|
index += 5;
|
||||||
stream.write(((rz) >> 8) & 0xff);
|
if (index == 1280) {
|
||||||
stream.write((byte) ry);
|
out.write(buff);
|
||||||
|
buff = new byte[1280];
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final byte[] buffer = new byte[5];
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int readX(FaweInputStream is) throws IOException {
|
public int readX(FaweInputStream is) throws IOException {
|
||||||
is.readFully(buffer);
|
is.readFully(buffer);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren