Author: j16sdiz
Date: 2009-01-02 10:35:14 +0000 (Fri, 02 Jan 2009)
New Revision: 24879
Modified:
trunk/plugins/XMLSpider/IndexWriter.java
Log:
benchmarking & debugging
Modified: trunk/plugins/XMLSpider/IndexWriter.java
===================================================================
--- trunk/plugins/XMLSpider/IndexWriter.java 2009-01-02 08:53:05 UTC (rev
24878)
+++ trunk/plugins/XMLSpider/IndexWriter.java 2009-01-02 10:35:14 UTC (rev
24879)
@@ -47,6 +47,7 @@
private int match;
private long time_taken;
private boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
+ private boolean DEBUG = true;
IndexWriter() {
}
@@ -332,7 +333,7 @@
/* Starting to generate index */
xmlDoc = impl.createDocument(null, "sub_index", null);
rootElement = xmlDoc.getDocumentElement();
- if (logMINOR)
+ if (DEBUG)
rootElement.appendChild(xmlDoc.createComment(new Date().toGMTString()));
/* Adding header to the index */
@@ -395,7 +396,7 @@
}
}
}
- if (logMINOR)
+ if (DEBUG)
keywordsElement.appendChild(xmlDoc.createComment(term.getMD5()));
keywordsElement.appendChild(wordElement);
}
@@ -474,7 +475,7 @@
xmlDoc = impl.createDocument(null, "sub_index", null);
rootElement = xmlDoc.getDocumentElement();
- if (logMINOR)
+ if (DEBUG)
rootElement.appendChild(xmlDoc.createComment(new Date().toGMTString()));
/* Adding header to the index */
@@ -559,16 +560,50 @@
db.open(arg[0]);
PerstRoot root = (PerstRoot) db.getRoot();
IndexWriter writer = new IndexWriter();
+
+ int benchmark = 0;
+ long[] timeTaken = null;
+ if (arg[1] != null) {
+ benchmark = Integer.parseInt(arg[1]);
+ timeTaken = new long[benchmark];
+ }
+
- do {
+ for (int i = 0; i < benchmark; i++) {
long startTime = System.currentTimeMillis();
writer.makeIndex(root);
long endTime = System.currentTimeMillis();
long memFree = Runtime.getRuntime().freeMemory();
long memTotal = Runtime.getRuntime().totalMemory();
- System.out.println("Index generated in " + (endTime -
startTime) + "ms. Used memory="
- + (memTotal - memFree));
- } while ("BENCHMARK".equals(arg[1]));
+ System.out.println("Index generated in " + (endTime -
startTime) //
+ + "ms. Used memory=" + (memTotal - memFree));
+
+ if (benchmark > 0) {
+ timeTaken[i] = (endTime - startTime);
+
+ System.out.println("Cooling down.");
+ for (int j = 0; j < 3; j++) {
+ System.gc();
+ System.runFinalization();
+ Thread.sleep(3000);
+ }
+ }
+ }
+
+ if (benchmark > 0) {
+ long totalTime = 0;
+ long totalSqTime = 0;
+ for (long t : timeTaken) {
+ totalTime += t;
+ totalSqTime += t * t;
+ }
+
+ double meanTime = (totalTime / benchmark);
+ double meanSqTime = (totalSqTime / benchmark);
+
+ System.out.println("Mean time = " + (long) meanTime +
"ms");
+ System.out.println(" sd = " + (long)
Math.sqrt(meanSqTime - meanTime * meanTime) + "ms");
+ }
}
}
\ No newline at end of file
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs