Some performance or memory optimizations

Replaced String concat in loops with StringBuilder (performance)
Replaced for with keySet + Map.get() through for with entrySet (perf)
Changed inner classes to static classes, mostly struct like (memory)
This commit is contained in:
yueh
2014-09-30 22:59:49 +02:00
parent d8da97d2af
commit 7fa7e43c29
25 changed files with 86 additions and 80 deletions
@@ -31,12 +31,12 @@ public class StorageHelper
return instance;
}
class triggerUpdates implements ISpatialVisitor
static class TriggerUpdates implements ISpatialVisitor
{
final World dst;
public triggerUpdates(World dst2) {
public TriggerUpdates(World dst2) {
dst = dst2;
}
@@ -48,7 +48,7 @@ public class StorageHelper
}
}
class WrapInMatrixFrame implements ISpatialVisitor
static class WrapInMatrixFrame implements ISpatialVisitor
{
final World dst;
@@ -68,7 +68,7 @@ public class StorageHelper
}
}
class TelDestination
static class TelDestination
{
TelDestination(World _dim, AxisAlignedBB srcBox, double _x, double _y, double _z, int tileX, int tileY, int tileZ) {
@@ -91,7 +91,7 @@ public class StorageHelper
final int zOff;
}
class METeleporter extends Teleporter
static class METeleporter extends Teleporter
{
final TelDestination dest;
@@ -303,11 +303,11 @@ public class StorageHelper
for (WorldCoord wc : cSrc.updates)
cSrc.world.notifyBlockOfNeighborChange( wc.x, wc.y, wc.z, Platform.air );
transverseEdges( x - 1, y - 1, z - 1, x + scaleX + 1, y + scaleY + 1, z + scaleZ + 1, new triggerUpdates( src ) );
transverseEdges( i - 1, j - 1, k - 1, i + scaleX + 1, j + scaleY + 1, k + scaleZ + 1, new triggerUpdates( dst ) );
transverseEdges( x - 1, y - 1, z - 1, x + scaleX + 1, y + scaleY + 1, z + scaleZ + 1, new TriggerUpdates( src ) );
transverseEdges( i - 1, j - 1, k - 1, i + scaleX + 1, j + scaleY + 1, k + scaleZ + 1, new TriggerUpdates( dst ) );
transverseEdges( x, y, z, x + scaleX, y + scaleY, z + scaleZ, new triggerUpdates( src ) );
transverseEdges( i, j, k, i + scaleX, j + scaleY, k + scaleZ, new triggerUpdates( dst ) );
transverseEdges( x, y, z, x + scaleX, y + scaleY, z + scaleZ, new TriggerUpdates( src ) );
transverseEdges( i, j, k, i + scaleX, j + scaleY, k + scaleZ, new TriggerUpdates( dst ) );
/*
* IChunkProvider cp = dest.getChunkProvider(); if ( cp instanceof ChunkProviderServer ) { ChunkProviderServer