From 3a0b3acb7af54c1a44374cb7d99c6537480eb771 Mon Sep 17 00:00:00 2001 From: didfet Date: Tue, 31 Mar 2015 17:32:41 +0200 Subject: [PATCH] Performance improvement (issue #6) --- pom.xml | 2 +- .../info/fetter/logstashforwarder/FileReader.java | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 498f76b..6f091e0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 logstash-forwarder-java logstash-forwarder-java - 0.1.4 + 0.2.0-SNAPSHOT logstash-forwarder-java Java version of logstash forwarder https://github.com/didfet/logstash-forwarder-java diff --git a/src/main/java/info/fetter/logstashforwarder/FileReader.java b/src/main/java/info/fetter/logstashforwarder/FileReader.java index 3f32532..34c818a 100644 --- a/src/main/java/info/fetter/logstashforwarder/FileReader.java +++ b/src/main/java/info/fetter/logstashforwarder/FileReader.java @@ -44,6 +44,8 @@ public class FileReader { private int spoolSize = 0; private List eventList; private Map pointerMap; + private final int STRINGBUILDER_INITIAL_CAPACITY = 1000; + private StringBuilder stringBuilder; private String hostname; { try { @@ -60,6 +62,7 @@ public class FileReader { public int readFiles(Collection fileList) throws AdapterException { int eventCount = 0; + stringBuilder = new StringBuilder(STRINGBUILDER_INITIAL_CAPACITY); if(logger.isTraceEnabled()) { logger.trace("Reading " + fileList.size() + " file(s)"); } @@ -141,22 +144,22 @@ public class FileReader { } private String readLine(RandomAccessFile reader) throws IOException { - StringBuffer sb = new StringBuffer(); + stringBuilder.setLength(0); int ch; boolean seenCR = false; while((ch=reader.read()) != -1) { switch(ch) { case '\n': - return sb.toString(); + return stringBuilder.toString(); case '\r': seenCR = true; break; default: if (seenCR) { - sb.append('\r'); + stringBuilder.append('\r'); seenCR = false; } - sb.append((char)ch); // add character, not its ascii value + stringBuilder.append((char)ch); // add character, not its ascii value } } return null;