From de2f2007c49c8e33c9cd819653c91efd10d1cfed Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 23 Feb 2025 20:45:06 -0500 Subject: [PATCH] Console: Improve writing efficiency replace out.write(buf.toString) with out.append(buf) to eliminate extra copy and object churn --- .../java/src/org/klomp/snark/web/I2PSnarkServlet.java | 10 +++++----- .../java/src/net/i2p/router/news/PersistNews.java | 2 +- .../net/i2p/router/update/ConsoleUpdateManager.java | 2 +- .../net/i2p/router/web/helpers/BanlistRenderer.java | 4 ++-- .../i2p/router/web/helpers/ConfigKeyringHelper.java | 2 +- .../net/i2p/router/web/helpers/ConfigNavHelper.java | 2 +- .../src/net/i2p/router/web/helpers/JobQueueHelper.java | 6 +++--- .../net/i2p/router/web/helpers/OldConsoleHelper.java | 2 +- .../src/net/i2p/router/web/helpers/ProfilesHelper.java | 2 +- .../src/net/i2p/router/web/helpers/StatsGenerator.java | 10 +++++----- .../net/i2p/router/web/helpers/SummaryBarRenderer.java | 2 +- .../i2p/router/crypto/TransientSessionKeyManager.java | 6 +++--- .../src/net/i2p/router/crypto/ratchet/RatchetSKM.java | 6 +++--- .../src/net/i2p/router/startup/RouterAppManager.java | 2 +- router/java/src/net/i2p/router/sybil/PersistSybil.java | 2 +- 15 files changed, 30 insertions(+), 30 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 810ebc0c0..1d1df1ecb 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -908,7 +908,7 @@ public class I2PSnarkServlet extends BasicServlet { private void writeHiddenInputs(PrintWriter out, HttpServletRequest req, String action) { StringBuilder buf = new StringBuilder(256); writeHiddenInputs(buf, req, action); - out.write(buf.toString()); + out.append(buf); } /** @@ -1995,7 +1995,7 @@ public class I2PSnarkServlet extends BasicServlet { buf.append(""); - out.write(buf.toString()); + out.append(buf); } String icon; if (isMultiFile) @@ -2024,7 +2024,7 @@ public class I2PSnarkServlet extends BasicServlet { .append("\">"); toThemeImg(buf, "comment", "", ""); buf.append(""); - out.write(buf.toString()); + out.append(buf); } } @@ -2048,7 +2048,7 @@ public class I2PSnarkServlet extends BasicServlet { else buf.append(_t("Open file")); buf.append("\">"); - out.write(buf.toString()); + out.append(buf); } out.write(DataHelper.escapeHTML(basename)); if (remaining == 0 || isMultiFile) @@ -3048,7 +3048,7 @@ public class I2PSnarkServlet extends BasicServlet { "" + " \n" + // spacer "\n"); - out.write(buf.toString()); + out.append(buf); } private void writeConfigLink(PrintWriter out) throws IOException { diff --git a/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java b/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java index f4ca28dc5..93095cd83 100644 --- a/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java +++ b/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java @@ -77,7 +77,7 @@ class PersistNews { out = new OutputStreamWriter(new GZIPOutputStream(new SecureFileOutputStream(file)), "UTF-8"); out.write(XML_START); XMLParser.toString(buf, entry); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); } catch (IOException ioe) { if (log.shouldWarn()) diff --git a/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java b/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java index d856756ca..a8181614b 100644 --- a/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java +++ b/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java @@ -1824,7 +1824,7 @@ public class ConsoleUpdateManager implements UpdateManager, RouterApp { buf.append("
"); toString(buf, _downloaders); buf.append("
"); - out.write(buf.toString()); + out.append(buf); } /** debug */ diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java index 7696a33a8..0607c1650 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java @@ -39,7 +39,7 @@ class BanlistRenderer { buf.append("

").append(_t("Banned Peers")); if (entries.isEmpty()) { buf.append("

").append(_t("none")).append(""); - out.write(buf.toString()); + out.append(buf); return; } else { buf.append(" (").append(entries.size()).append(")"); @@ -81,7 +81,7 @@ class BanlistRenderer { buf.append("\n"); } buf.append("\n"); - out.write(buf.toString()); + out.append(buf); out.flush(); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java index 3f5fc177b..450ad5934 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java @@ -46,7 +46,7 @@ public class ConfigKeyringHelper extends HelperBase { "" + ""); } - out.write(buf.toString()); + out.append(buf); out.flush(); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java index 9cfed79f8..fc9ce8a34 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java @@ -92,6 +92,6 @@ public class ConfigNavHelper extends HelperBase { } if (!span) buf.append(""); - _out.write(buf.toString()); + _out.append(buf); } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java index 185fdba80..0806e7419 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java @@ -92,7 +92,7 @@ public class JobQueueHelper extends HelperBase { } buf.append("\n"); getJobCounts(buf, counter); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); buf.append("

") @@ -118,14 +118,14 @@ public class JobQueueHelper extends HelperBase { } buf.append("\n"); getJobCounts(buf, counter); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); buf.append("

") .append(_t("Total Job Statistics")) .append("

\n"); getJobStats(buf); - out.write(buf.toString()); + out.append(buf); } /** @since 0.9.5 */ diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java index 66055a170..da4ea1140 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java @@ -75,7 +75,7 @@ public class OldConsoleHelper extends HelperBase { long free = Runtime.getRuntime().freeMemory()/1024; buf.append("Memory: In use: ").append((tot-free)).append("KB Free: ").append(free).append("KB
\n"); - out.write(buf.toString()); + out.append(buf); out.flush(); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java index b2a72dfaa..632947c7c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java @@ -119,6 +119,6 @@ public class ProfilesHelper extends HelperBase { if (!span) buf.append(""); buf.append(""); - _out.write(buf.toString()); + _out.append(buf); } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java index eceb40992..00bdd10ba 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java @@ -70,7 +70,7 @@ public class StatsGenerator { buf.append("
"); buf.append(_t("Jump to section")).append(": "); buf.append("
"); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); for (Map.Entry> entry : groups.entrySet()) { @@ -108,7 +108,7 @@ public class StatsGenerator { buf.append(translateGroup(group)); buf.append(""); buf.append("\n"); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); } buf.append("Total inbound tags: ").append(total).append(" (") @@ -841,7 +841,7 @@ public class TransientSessionKeyManager extends SessionKeyManager { buf.append(size).append('/').append(ts.getOriginalSize()).append(" tags remaining; acked? ").append(ts.getAcked()).append(""); } buf.append("\n"); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); } buf.append("Total outbound tags: ").append(total).append(" (") @@ -849,7 +849,7 @@ public class TransientSessionKeyManager extends SessionKeyManager { .append("; sessions: ").append(outbound.size()) .append("\n"); - out.write(buf.toString()); + out.append(buf); } /** diff --git a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java index e2c6044ef..d0e74d230 100644 --- a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java +++ b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java @@ -822,7 +822,7 @@ public class RatchetSKM extends SessionKeyManager implements SessionTagListener } } buf.append("\n"); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); } buf.append("Total inbound tags: ").append(total).append(" (") @@ -876,14 +876,14 @@ public class RatchetSKM extends SessionKeyManager implements SessionTagListener buf.append(""); } buf.append("\n"); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); } buf.append("Total sets: ").append(totalSets) .append("; sessions: ").append(outbound.size()) .append("\n"); - out.write(buf.toString()); + out.append(buf); } /** diff --git a/router/java/src/net/i2p/router/startup/RouterAppManager.java b/router/java/src/net/i2p/router/startup/RouterAppManager.java index 561a9f1ad..d46ddcb5d 100644 --- a/router/java/src/net/i2p/router/startup/RouterAppManager.java +++ b/router/java/src/net/i2p/router/startup/RouterAppManager.java @@ -308,7 +308,7 @@ public class RouterAppManager extends ClientAppManagerImpl { buf.append("
"); toString2(buf); buf.append("
"); - out.write(buf.toString()); + out.append(buf); } /** diff --git a/router/java/src/net/i2p/router/sybil/PersistSybil.java b/router/java/src/net/i2p/router/sybil/PersistSybil.java index 57796db81..4a3f41970 100644 --- a/router/java/src/net/i2p/router/sybil/PersistSybil.java +++ b/router/java/src/net/i2p/router/sybil/PersistSybil.java @@ -81,7 +81,7 @@ public class PersistSybil { buf.append(h.toBase64()).append(':'); p.toString(buf); buf.append('\n'); - out.write(buf.toString()); + out.append(buf); buf.setLength(0); } } finally {