From 0809d23559c07d3b3e7bca25e70ac31d8999077c Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 14 Mar 2021 12:08:07 -0500 Subject: [PATCH] Propagate stateByID scaling performance improvement --- .../src/main/java/org/dynmap/fabric_1_15_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/fabric_1_16_1/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/fabric_1_16_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/fabric_1_16_4/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_16_1/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_16_2/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_16_3/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_16_4/DynmapPlugin.java | 2 +- .../src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java | 1 - 14 files changed, 13 insertions(+), 14 deletions(-) diff --git a/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/DynmapPlugin.java b/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/DynmapPlugin.java index b29586ad..641d084c 100644 --- a/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/DynmapPlugin.java +++ b/fabric-1.15.2/src/main/java/org/dynmap/fabric_1_15_2/DynmapPlugin.java @@ -179,7 +179,7 @@ public class DynmapPlugin { int idx = bsids.getId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx + 1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/DynmapPlugin.java b/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/DynmapPlugin.java index 5d8d89fa..6dd33db3 100644 --- a/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/DynmapPlugin.java +++ b/fabric-1.16.1/src/main/java/org/dynmap/fabric_1_16_1/DynmapPlugin.java @@ -177,7 +177,7 @@ public class DynmapPlugin { int idx = bsids.getId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx + 1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/DynmapPlugin.java b/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/DynmapPlugin.java index 39edce5b..79e2d6f7 100644 --- a/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/DynmapPlugin.java +++ b/fabric-1.16.2/src/main/java/org/dynmap/fabric_1_16_2/DynmapPlugin.java @@ -177,7 +177,7 @@ public class DynmapPlugin { int idx = bsids.getRawId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx + 1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/DynmapPlugin.java b/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/DynmapPlugin.java index dc686342..1bbc77bd 100644 --- a/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/DynmapPlugin.java +++ b/fabric-1.16.4/src/main/java/org/dynmap/fabric_1_16_4/DynmapPlugin.java @@ -177,7 +177,7 @@ public class DynmapPlugin { int idx = bsids.getRawId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx + 1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java b/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java index 68f5d235..d444d1a9 100644 --- a/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java +++ b/forge-1.11.2/src/main/java/org/dynmap/forge_1_11_2/DynmapPlugin.java @@ -177,7 +177,7 @@ public class DynmapPlugin int i = Block.getIdFromBlock(b); if (i >= (stateByID.length >> 4)) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, (i+1) << 4); + stateByID = Arrays.copyOf(stateByID, i*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } ResourceLocation ui = null; diff --git a/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java b/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java index b8fe147c..5e157577 100644 --- a/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java +++ b/forge-1.12.2/src/main/java/org/dynmap/forge_1_12_2/DynmapPlugin.java @@ -178,7 +178,7 @@ public class DynmapPlugin int i = Block.getIdFromBlock(b); if (i >= (stateByID.length >> 4)) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, (i+1) << 4); + stateByID = Arrays.copyOf(stateByID, i*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } ResourceLocation ui = null; diff --git a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java index 8be8b61d..f93efbb2 100644 --- a/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java +++ b/forge-1.13.2/src/main/java/org/dynmap/forge_1_13_2/DynmapPlugin.java @@ -201,7 +201,7 @@ public class DynmapPlugin int idx = bsids.get(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java b/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java index b988af72..9b259c01 100644 --- a/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java +++ b/forge-1.14.4/src/main/java/org/dynmap/forge_1_14_4/DynmapPlugin.java @@ -227,7 +227,7 @@ public class DynmapPlugin int idx = bsids.get(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java b/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java index 055a6fcb..a8aa82ba 100644 --- a/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java +++ b/forge-1.15.2/src/main/java/org/dynmap/forge_1_15_2/DynmapPlugin.java @@ -228,7 +228,7 @@ public class DynmapPlugin int idx = bsids.get(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.16.1/src/main/java/org/dynmap/forge_1_16_1/DynmapPlugin.java b/forge-1.16.1/src/main/java/org/dynmap/forge_1_16_1/DynmapPlugin.java index cef1e9b4..5e6c5f42 100644 --- a/forge-1.16.1/src/main/java/org/dynmap/forge_1_16_1/DynmapPlugin.java +++ b/forge-1.16.1/src/main/java/org/dynmap/forge_1_16_1/DynmapPlugin.java @@ -229,7 +229,7 @@ public class DynmapPlugin int idx = bsids.get(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.16.2/src/main/java/org/dynmap/forge_1_16_2/DynmapPlugin.java b/forge-1.16.2/src/main/java/org/dynmap/forge_1_16_2/DynmapPlugin.java index d5afe09c..25106cf5 100644 --- a/forge-1.16.2/src/main/java/org/dynmap/forge_1_16_2/DynmapPlugin.java +++ b/forge-1.16.2/src/main/java/org/dynmap/forge_1_16_2/DynmapPlugin.java @@ -239,7 +239,7 @@ public class DynmapPlugin int idx = bsids.getId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.16.3/src/main/java/org/dynmap/forge_1_16_3/DynmapPlugin.java b/forge-1.16.3/src/main/java/org/dynmap/forge_1_16_3/DynmapPlugin.java index 76f8bc35..62298099 100644 --- a/forge-1.16.3/src/main/java/org/dynmap/forge_1_16_3/DynmapPlugin.java +++ b/forge-1.16.3/src/main/java/org/dynmap/forge_1_16_3/DynmapPlugin.java @@ -239,7 +239,7 @@ public class DynmapPlugin int idx = bsids.getId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.16.4/src/main/java/org/dynmap/forge_1_16_4/DynmapPlugin.java b/forge-1.16.4/src/main/java/org/dynmap/forge_1_16_4/DynmapPlugin.java index 4ab1dbf1..93c4fe20 100644 --- a/forge-1.16.4/src/main/java/org/dynmap/forge_1_16_4/DynmapPlugin.java +++ b/forge-1.16.4/src/main/java/org/dynmap/forge_1_16_4/DynmapPlugin.java @@ -239,7 +239,7 @@ public class DynmapPlugin int idx = bsids.getId(bs); if (idx >= stateByID.length) { int plen = stateByID.length; - stateByID = Arrays.copyOf(stateByID, idx+1); + stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock(); diff --git a/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java b/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java index b183a447..0b4aa874 100644 --- a/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java +++ b/forge-1.16.5/src/main/java/org/dynmap/forge_1_16_5/DynmapPlugin.java @@ -240,7 +240,6 @@ public class DynmapPlugin if (idx >= stateByID.length) { int plen = stateByID.length; stateByID = Arrays.copyOf(stateByID, idx*11/10); // grow array by 10% - Log.debug("Resized stateByID from " + plen + " to " + stateByID.length); Arrays.fill(stateByID, plen, stateByID.length, DynmapBlockState.AIR); } Block b = bs.getBlock();