LUCENE-2830: Use StringBuilder instead of StringBuffer in benchmark (trunk)

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1052182 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Shai Erera 2010-12-23 06:52:55 +00:00
parent 5c2b882a7e
commit f9854132c6
25 changed files with 45 additions and 55 deletions

View File

@ -174,6 +174,9 @@ API Changes
* LUCENE-2747: Deprecated ArabicLetterTokenizer. StandardTokenizer now tokenizes
most languages correctly including Arabic. (Steven Rowe, Robert Muir)
* LUCENE-2830: Use StringBuilder instead of StringBuffer across Benchmark, and
remove the StringBuffer HtmlParser.parse() variant. (Shai Erera)
New features
* LUCENE-2306: Add NumericRangeFilter and NumericRangeQuery support to XMLQueryParser.

View File

@ -41,7 +41,7 @@ public abstract class AbstractQueryMaker implements QueryMaker {
public String printQueries() {
String newline = System.getProperty("line.separator");
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
if (queries != null) {
for (int i = 0; i < queries.length; i++) {
sb.append(i+". "+ queries[i].getClass().getSimpleName()+" - "+queries[i].toString());

View File

@ -40,7 +40,7 @@ public class DemoHTMLParser implements org.apache.lucene.benchmark.byTask.feeds.
// body
Reader r = p.getReader();
char c[] = new char[1024];
StringBuffer bodyBuf = new StringBuffer();
StringBuilder bodyBuf = new StringBuilder();
int n;
while ((n = r.read(c)) >= 0) {
if (n>0) {
@ -67,12 +67,4 @@ public class DemoHTMLParser implements org.apache.lucene.benchmark.byTask.feeds.
return docData;
}
/*
* (non-Javadoc)
* @see org.apache.lucene.benchmark.byTask.feeds.HTMLParser#parse(java.lang.String, java.util.Date, java.lang.StringBuffer, java.text.DateFormat)
*/
public DocData parse(DocData docData, String name, Date date, StringBuffer inputText, DateFormat dateFormat) throws IOException, InterruptedException {
return parse(docData, name, date, new StringReader(inputText.toString()), dateFormat);
}
}

View File

@ -202,7 +202,7 @@ public class DirContentSource extends ContentSource {
reader.readLine();//skip an empty line
String title = reader.readLine();
reader.readLine();//skip an empty line
StringBuffer bodyBuf = new StringBuffer(1024);
StringBuilder bodyBuf = new StringBuilder(1024);
while ((line = reader.readLine()) != null) {
bodyBuf.append(line).append(' ');
}

View File

@ -400,7 +400,7 @@ public class DocMaker {
public void printDocStatistics() {
boolean print = false;
String col = " ";
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
String newline = System.getProperty("line.separator");
sb.append("------------> ").append(getClass().getSimpleName()).append(" statistics (").append(printNum).append("): ").append(newline);
int nut = source.getTotalDocsCount();

View File

@ -48,7 +48,7 @@ public class EnwikiContentSource extends ContentSource {
private boolean threadDone;
private String[] tuple;
private NoMoreDataException nmde;
private StringBuffer contents = new StringBuffer();
private StringBuilder contents = new StringBuilder();
private String title;
private String body;
private String time;
@ -91,7 +91,7 @@ public class EnwikiContentSource extends ContentSource {
}
String time(String original) {
StringBuffer buffer = new StringBuffer();
StringBuilder buffer = new StringBuilder();
buffer.append(original.substring(8, 10));
buffer.append('-');

View File

@ -40,12 +40,5 @@ public interface HTMLParser {
* @throws InterruptedException
*/
public DocData parse(DocData docData, String name, Date date, Reader reader, DateFormat dateFormat) throws IOException, InterruptedException;
/**
* Parse the inputText and return DocData.
* @param inputText the html text to parse.
* @see #parse(DocData, String, Date, Reader, DateFormat)
*/
public DocData parse(DocData docData, String name, Date date, StringBuffer inputText, DateFormat dateFormat) throws IOException, InterruptedException;
}

View File

@ -119,7 +119,7 @@ public class ReutersContentSource extends ContentSource {
reader.readLine();// skip an empty line
String title = reader.readLine();
reader.readLine();// skip an empty line
StringBuffer bodyBuf = new StringBuffer(1024);
StringBuilder bodyBuf = new StringBuilder(1024);
String line = null;
while ((line = reader.readLine()) != null) {
bodyBuf.append(line).append(' ');

View File

@ -120,7 +120,7 @@ public class TaskStats implements Cloneable {
*/
@Override
public String toString() {
StringBuffer res = new StringBuffer(task.getName());
StringBuilder res = new StringBuilder(task.getName());
res.append(" ");
res.append(count);
res.append(" ");

View File

@ -163,7 +163,7 @@ public abstract class PerfTask implements Cloneable {
if (params==null) {
return name;
}
return new StringBuffer(name).append('(').append(params).append(')').toString();
return new StringBuilder(name).append('(').append(params).append(')').toString();
}
/**
@ -207,7 +207,7 @@ public abstract class PerfTask implements Cloneable {
@Override
public String toString() {
String padd = getPadding();
StringBuffer sb = new StringBuffer(padd);
StringBuilder sb = new StringBuilder(padd);
if (disableCounting) {
sb.append('-');
}

View File

@ -51,7 +51,7 @@ public class RepAllTask extends ReportTask {
protected Report reportAll(List<TaskStats> taskStats) {
String longestOp = longestOp(taskStats);
boolean first = true;
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(tableTitle(longestOp));
sb.append(newline);
int reported = 0;

View File

@ -49,7 +49,7 @@ public class RepSelectByPrefTask extends RepSumByPrefTask {
protected Report reportSelectByPrefix(List<TaskStats> taskStats) {
String longestOp = longestOp(taskStats);
boolean first = true;
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(tableTitle(longestOp));
sb.append(newline);
int reported = 0;

View File

@ -82,7 +82,7 @@ public abstract class ReportTask extends PerfTask {
* @return the table title line.
*/
protected String tableTitle (String longestOp) {
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(Format.format(OP,longestOp));
sb.append(ROUND);
sb.append(getRunData().getConfig().getColsNamesForValsByRound());
@ -118,7 +118,7 @@ public abstract class ReportTask extends PerfTask {
*/
protected String taskReportLine(String longestOp, TaskStats stat) {
PerfTask task = stat.getTask();
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(Format.format(task.getName(), longestOp));
String round = (stat.getRound()>=0 ? ""+stat.getRound() : "-");
sb.append(Format.formatPaddLeft(round, ROUND));
@ -136,7 +136,7 @@ public abstract class ReportTask extends PerfTask {
protected Report genPartialReport(int reported, LinkedHashMap<String,TaskStats> partOfTasks, int totalSize) {
String longetOp = longestOp(partOfTasks.values());
boolean first = true;
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(tableTitle(longetOp));
sb.append(newline);
int lineNum = 0;

View File

@ -418,7 +418,7 @@ public class TaskSequence extends PerfTask {
@Override
public String toString() {
String padd = getPadding();
StringBuffer sb = new StringBuffer(super.toString());
StringBuilder sb = new StringBuilder(super.toString());
sb.append(parallel ? " [" : " {");
sb.append(NEW_LINE);
for (final PerfTask task : tasks) {

View File

@ -82,7 +82,7 @@ public class Algorithm {
stok.pushBack();
} else {
// get params, for tasks that supports them, - anything until next ')'
StringBuffer params = new StringBuffer();
StringBuilder params = new StringBuilder();
stok.nextToken();
while (stok.ttype!=')') {
switch (stok.ttype) {
@ -254,7 +254,7 @@ public class Algorithm {
@Override
public String toString() {
String newline = System.getProperty("line.separator");
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(sequence.toString());
sb.append(newline);
return sb.toString();

View File

@ -44,6 +44,8 @@ import java.util.StringTokenizer;
*/
public class Config {
// For tests, if verbose is not turned on, don't print the props.
private static final String DEFAULT_PRINT_PROPS = System.getProperty("tests.verbose", "true");
private static final String NEW_LINE = System.getProperty("line.separator");
private int roundNumber = 0;
@ -71,7 +73,7 @@ public class Config {
}
r.close();
// copy props lines to string
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < lastConfigLine; i++) {
sb.append(lines.get(i));
sb.append(NEW_LINE);
@ -85,12 +87,12 @@ public class Config {
props.setProperty("work.dir", System.getProperty("benchmark.work.dir", "work"));
}
if (Boolean.valueOf(props.getProperty("print.props", "true")).booleanValue()) {
if (Boolean.valueOf(props.getProperty("print.props", DEFAULT_PRINT_PROPS)).booleanValue()) {
printProps();
}
// copy algorithm lines
sb = new StringBuffer();
sb = new StringBuilder();
for (int i = lastConfigLine; i < lines.size(); i++) {
sb.append(lines.get(i));
sb.append(NEW_LINE);
@ -104,12 +106,12 @@ public class Config {
*/
public Config (Properties props) {
this.props = props;
if (Boolean.valueOf(props.getProperty("print.props","true")).booleanValue()) {
if (Boolean.valueOf(props.getProperty("print.props",DEFAULT_PRINT_PROPS)).booleanValue()) {
printProps();
}
}
@SuppressWarnings("unchecked")
@SuppressWarnings({"unchecked", "rawtypes"})
private void printProps() {
System.out.println("------------> config properties:");
List<String> propKeys = new ArrayList(props.keySet());
@ -270,7 +272,7 @@ public class Config {
public int newRound() {
roundNumber++;
StringBuffer sb = new StringBuffer("--> Round ").append(roundNumber - 1).append("-->").append(roundNumber);
StringBuilder sb = new StringBuilder("--> Round ").append(roundNumber - 1).append("-->").append(roundNumber);
// log changes in values
if (valByRound.size() > 0) {
@ -386,7 +388,7 @@ public class Config {
if (colForValByRound.size() == 0) {
return "";
}
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
for (final String name : colForValByRound.keySet()) {
String colName = colForValByRound.get(name);
sb.append(" ").append(colName);
@ -401,7 +403,7 @@ public class Config {
if (colForValByRound.size() == 0) {
return "";
}
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
for (final String name : colForValByRound.keySet()) {
String colName = colForValByRound.get(name);
String template = " " + colName;

View File

@ -63,7 +63,7 @@ public class TrecTopicsReader {
*/
public QualityQuery[] readQueries(BufferedReader reader) throws IOException {
ArrayList<QualityQuery> res = new ArrayList<QualityQuery>();
StringBuffer sb;
StringBuilder sb;
try {
while (null!=(sb=read(reader,"<top>",null,false,false))) {
HashMap<String,String> fields = new HashMap<String,String>();
@ -112,8 +112,8 @@ public class TrecTopicsReader {
}
// read until finding a line that starts with the specified prefix
private StringBuffer read (BufferedReader reader, String prefix, StringBuffer sb, boolean collectMatchLine, boolean collectAll) throws IOException {
sb = (sb==null ? new StringBuffer() : sb);
private StringBuilder read (BufferedReader reader, String prefix, StringBuilder sb, boolean collectMatchLine, boolean collectAll) throws IOException {
sb = (sb==null ? new StringBuilder() : sb);
String sep = "";
while (true) {
String line = reader.readLine();

View File

@ -31,7 +31,7 @@ public class MemUsage {
/** Scale down the values by divisor, append the unit string. */
public String toScaledString(int div, String unit) {
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append("free=").append(minFree / div);
sb.append("/").append(avgFree / div);
sb.append("/").append(maxFree / div).append(" ").append(unit);

View File

@ -133,7 +133,7 @@ public class TestData
return "# [NO RUN DATA]";
}
HashMap<String,LDCounter> resByTask = new HashMap<String,LDCounter>();
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
String lineSep = System.getProperty("line.separator");
sb.append("warm = Warm Index Reader").append(lineSep).append("srch = Search Index").append(lineSep).append("trav = Traverse Hits list, optionally retrieving document").append(lineSep).append(lineSep);
for (int i = 0; i < COLS.length; i++) {
@ -446,7 +446,7 @@ public class TestData
@Override
public String toString()
{
StringBuffer res = new StringBuffer();
StringBuilder res = new StringBuilder();
res.append("#-- ID: ").append(id).append(", ").append(new Date()).append(", heap=").append(heap).append(" --\n");
res.append("# source=").append(source).append(", directory=").append(directory).append("\n");
res.append("# maxBufferedDocs=").append(maxBufferedDocs).append(", mergeFactor=").append(mergeFactor);

View File

@ -162,7 +162,7 @@ public class TestRunData {
/** Return a string representation. */
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
for (final String label : getLabels()) {
sb.append(id).append("-").append(label).append(" ").append(getTotals(label).toString(false)).append(" ");
sb.append(getMemUsage(label).toScaledString(1024 * 1024, "MB")).append("\n");

View File

@ -95,7 +95,7 @@ public class TimeData {
* @return The String
*/
public String toString(boolean withMem) {
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
sb.append(count + "\t" + elapsed + "\t" + getRate());
if (withMem) sb.append("\t" + freeMem + "\t" + totalMem);
return sb.toString();

View File

@ -90,8 +90,8 @@ public class ExtractReuters
{
BufferedReader reader = new BufferedReader(new FileReader(sgmFile));
StringBuffer buffer = new StringBuffer(1024);
StringBuffer outBuffer = new StringBuffer(1024);
StringBuilder buffer = new StringBuilder(1024);
StringBuilder outBuffer = new StringBuilder(1024);
String line = null;
int docNumber = 0;

View File

@ -71,7 +71,7 @@ public class ExtractWikipedia {
d.mkdirs();
File f = new File(d, id + ".txt");
StringBuffer contents = new StringBuffer();
StringBuilder contents = new StringBuilder();
contents.append(time);
contents.append("\n\n");

View File

@ -80,7 +80,7 @@ public abstract class BenchmarkTestCase extends LuceneTestCase {
// catenate alg lines to make the alg text
private String algLinesToText(String[] algLines) {
String indent = " ";
StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < propLines.length; i++) {
sb.append(indent).append(propLines[i]).append(NEW_LINE);
}

View File

@ -48,7 +48,7 @@ public class LineDocSourceTest extends BenchmarkTestCase {
OutputStream out = new FileOutputStream(file);
out = csFactory.createCompressorOutputStream("bzip2", out);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
StringBuffer doc = new StringBuffer();
StringBuilder doc = new StringBuilder();
doc.append("title").append(WriteLineDocTask.SEP).append("date").append(WriteLineDocTask.SEP).append("body");
writer.write(doc.toString());
writer.newLine();
@ -58,7 +58,7 @@ public class LineDocSourceTest extends BenchmarkTestCase {
private void createRegularLineFile(File file) throws Exception {
OutputStream out = new FileOutputStream(file);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
StringBuffer doc = new StringBuffer();
StringBuilder doc = new StringBuilder();
doc.append("title").append(WriteLineDocTask.SEP).append("date").append(WriteLineDocTask.SEP).append("body");
writer.write(doc.toString());
writer.newLine();