From 681c4a20334419d26b8dafe511e6b3226794b3c1 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 21 Aug 2018 06:29:44 +0200 Subject: [PATCH] Reduce amount of string allocations --- src/main/java/de/diddiz/LogBlock/Consumer.java | 10 ++++------ .../java/de/diddiz/LogBlock/config/WorldConfig.java | 9 +++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/Consumer.java b/src/main/java/de/diddiz/LogBlock/Consumer.java index 02ac410..09b0288 100644 --- a/src/main/java/de/diddiz/LogBlock/Consumer.java +++ b/src/main/java/de/diddiz/LogBlock/Consumer.java @@ -710,9 +710,8 @@ public class Consumer extends Thread { public BlockRow(Location loc, Actor actor, int replaced, int replacedData, byte[] replacedState, int type, int typeData, byte[] typeState, ChestAccess ca) { super(System.currentTimeMillis() / 1000, loc, actor, replaced, replacedData, replacedState, type, typeData, typeState, ca); - final String table = getWorldConfig(loc.getWorld()).table; - statementString = "INSERT INTO `" + table + "-blocks` (date, playerid, replaced, replaceddata, type, typedata, x, y, z) VALUES (FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?)"; - selectActorIdStatementString = "SELECT playerid FROM `" + table + "-blocks` WHERE x = ? AND y = ? AND z = ? ORDER BY date DESC LIMIT 1"; + statementString = getWorldConfig(loc.getWorld()).insertBlockStatementString; + selectActorIdStatementString = getWorldConfig(loc.getWorld()).selectBlockActorIdStatementString; } @Override @@ -769,17 +768,16 @@ public class Consumer extends Thread { batchHelper.addBatch(smt, new IntCallback() { @Override public void call(int id) throws SQLException { - final String table = getWorldConfig(loc.getWorld()).table; PreparedStatement ps; if (typeState != null || replacedState != null) { - ps = batchHelper.getOrPrepareStatement(conn, "INSERT INTO `" + table + "-state` (replacedState, typeState, id) VALUES(?, ?, ?)", Statement.NO_GENERATED_KEYS); + ps = batchHelper.getOrPrepareStatement(conn, getWorldConfig(loc.getWorld()).insertBlockStateStatementString, Statement.NO_GENERATED_KEYS); ps.setBytes(1, replacedState); ps.setBytes(2, typeState); ps.setInt(3, id); batchHelper.addBatch(ps, null); } if (ca != null) { - ps = batchHelper.getOrPrepareStatement(conn, "INSERT INTO `" + table + "-chestdata` (item, itemremove, id, itemtype) values (?, ?, ?, ?)", Statement.NO_GENERATED_KEYS); + ps = batchHelper.getOrPrepareStatement(conn, getWorldConfig(loc.getWorld()).insertBlockChestDataStatementString, Statement.NO_GENERATED_KEYS); ps.setBytes(1, Utils.saveItemStack(ca.itemStack)); ps.setInt(2, ca.remove ? 1 : 0); ps.setInt(3, id); diff --git a/src/main/java/de/diddiz/LogBlock/config/WorldConfig.java b/src/main/java/de/diddiz/LogBlock/config/WorldConfig.java index 7b70518..3fe0d99 100644 --- a/src/main/java/de/diddiz/LogBlock/config/WorldConfig.java +++ b/src/main/java/de/diddiz/LogBlock/config/WorldConfig.java @@ -12,6 +12,10 @@ import java.util.Map.Entry; public class WorldConfig extends LoggingEnabledMapping { public final String world; public final String table; + public final String insertBlockStatementString; + public final String selectBlockActorIdStatementString; + public final String insertBlockStateStatementString; + public final String insertBlockChestDataStatementString; public WorldConfig(String world, File file) throws IOException { this.world = world; @@ -33,5 +37,10 @@ public class WorldConfig extends LoggingEnabledMapping { for (final Logging l : Logging.values()) { setLogging(l, config.getBoolean("logging." + l.toString())); } + + insertBlockStatementString = "INSERT INTO `" + table + "-blocks` (date, playerid, replaced, replaceddata, type, typedata, x, y, z) VALUES (FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?)"; + selectBlockActorIdStatementString = "SELECT playerid FROM `" + table + "-blocks` WHERE x = ? AND y = ? AND z = ? ORDER BY date DESC LIMIT 1"; + insertBlockStateStatementString = "INSERT INTO `" + table + "-state` (replacedState, typeState, id) VALUES(?, ?, ?)"; + insertBlockChestDataStatementString = "INSERT INTO `" + table + "-chestdata` (item, itemremove, id, itemtype) values (?, ?, ?, ?)"; } }