mirror of https://github.com/apache/lucene.git
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:
parent
5c2b882a7e
commit
f9854132c6
|
@ -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.
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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(' ');
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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('-');
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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(' ');
|
||||
|
|
|
@ -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(" ");
|
||||
|
|
|
@ -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('-');
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue