From abaa5d87f6cf4732f8b26224cb2df607807ce660 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Sun, 25 Jul 2004 23:33:54 +0000
Subject: [PATCH] more efficient mem alloc & usage

---
 core/java/src/net/i2p/crypto/AESInputStream.java |  4 ++--
 core/java/src/net/i2p/stat/Rate.java             | 12 +++++-------
 core/java/src/net/i2p/stat/RateStat.java         | 15 ++++++++-------
 3 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/core/java/src/net/i2p/crypto/AESInputStream.java b/core/java/src/net/i2p/crypto/AESInputStream.java
index a47c142f71..5f10aec594 100644
--- a/core/java/src/net/i2p/crypto/AESInputStream.java
+++ b/core/java/src/net/i2p/crypto/AESInputStream.java
@@ -14,7 +14,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.LinkedList;
+import java.util.ArrayList;
 import java.util.List;
 
 import net.i2p.I2PAppContext;
@@ -61,7 +61,7 @@ public class AESInputStream extends FilterInputStream {
         _lastBlock = new byte[BLOCK_SIZE];
         System.arraycopy(iv, 0, _lastBlock, 0, BLOCK_SIZE);
         _encryptedBuf = new ByteArrayOutputStream(BLOCK_SIZE);
-        _readyBuf = new LinkedList();
+        _readyBuf = new ArrayList(1024);
         _cumulativePaddingStripped = 0;
         _eofFound = false;
     }
diff --git a/core/java/src/net/i2p/stat/Rate.java b/core/java/src/net/i2p/stat/Rate.java
index efe1574c26..c267860cff 100644
--- a/core/java/src/net/i2p/stat/Rate.java
+++ b/core/java/src/net/i2p/stat/Rate.java
@@ -349,8 +349,7 @@ public class Rate {
         }
     }
 
-    public void store(OutputStream out, String prefix) throws IOException {
-        StringBuffer buf = new StringBuffer(16*1048);
+    public void store(String prefix, StringBuffer buf) throws IOException {
         PersistenceHelper.add(buf, prefix, ".period", "Number of milliseconds in the period", _period);
         PersistenceHelper.add(buf, prefix, ".creationDate",
                               "When was this rate created?  (milliseconds since the epoch, GMT)", _creationDate);
@@ -388,7 +387,6 @@ public class Rate {
         PersistenceHelper.add(buf, prefix, ".lifetimeTotalEventTime",
                               "How many milliseconds have the events since this stat was created consumed?",
                               _lifetimeTotalEventTime);
-        out.write(buf.toString().getBytes());
     }
 
     /**
@@ -476,11 +474,11 @@ public class Rate {
             rate.addData(i * 100, 20);
         }
         rate.coallesce();
-        java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(2048);
+        StringBuffer buf = new StringBuffer(1024);
         try {
-            rate.store(baos, "rate.test");
-            byte data[] = baos.toByteArray();
-            _log.error("Stored rate: size = " + data.length + "\n" + new String(data));
+            rate.store("rate.test", buf);
+            byte data[] = buf.toString().getBytes();
+            _log.error("Stored rate: size = " + data.length + "\n" + buf.toString());
 
             Properties props = new Properties();
             props.load(new java.io.ByteArrayInputStream(data));
diff --git a/core/java/src/net/i2p/stat/RateStat.java b/core/java/src/net/i2p/stat/RateStat.java
index 1938a4a99c..0de1a0c758 100644
--- a/core/java/src/net/i2p/stat/RateStat.java
+++ b/core/java/src/net/i2p/stat/RateStat.java
@@ -110,16 +110,17 @@ public class RateStat {
         buf.append("# ").append(_description).append(NL);
         buf.append("# ").append(NL).append(NL);
         out.write(buf.toString().getBytes());
-        buf = null;
+        buf.setLength(0);
         for (int i = 0; i < _rates.length; i++) {
-            StringBuffer rbuf = new StringBuffer(1024);
-            rbuf.append("#######").append(NL);
-            rbuf.append("# Period : ").append(DataHelper.formatDuration(_rates[i].getPeriod())).append(" for rate ")
+            buf.append("#######").append(NL);
+            buf.append("# Period : ").append(DataHelper.formatDuration(_rates[i].getPeriod())).append(" for rate ")
                 .append(_groupName).append(" - ").append(_statName).append(NL);
-            rbuf.append(NL);
-            out.write(rbuf.toString().getBytes());
+            buf.append(NL);
+            out.write(buf.toString().getBytes());
             String curPrefix = prefix + "." + DataHelper.formatDuration(_rates[i].getPeriod());
-            _rates[i].store(out, curPrefix);
+            _rates[i].store(curPrefix, buf);
+            out.write(buf.toString().getBytes());
+            buf.setLength(0);
         }
     }
 
-- 
GitLab