Author: robinanil
Date: Sat Apr 20 17:56:49 2013
New Revision: 1470206
URL: http://svn.apache.org/r1470206
Log:
MAHOUT print benchmarks as csv to make it easy to import into spreadsheets for
comparison
Modified:
mahout/trunk/integration/src/main/java/org/apache/mahout/benchmark/VectorBenchmarks.java
Modified:
mahout/trunk/integration/src/main/java/org/apache/mahout/benchmark/VectorBenchmarks.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/integration/src/main/java/org/apache/mahout/benchmark/VectorBenchmarks.java?rev=1470206&r1=1470205&r2=1470206&view=diff
==============================================================================
---
mahout/trunk/integration/src/main/java/org/apache/mahout/benchmark/VectorBenchmarks.java
(original)
+++
mahout/trunk/integration/src/main/java/org/apache/mahout/benchmark/VectorBenchmarks.java
Sat Apr 20 17:56:49 2013
@@ -152,7 +152,7 @@ public class VectorBenchmarks {
private void printStats(TimingStatistics stats, String benchmarkName, String
implName,
String content, int multiplier) {
- float speed = multiplier * stats.getNCalls() * numNonZeros * 1000.0f * 12
/ stats.getSumTime();
+ float speed = multiplier * stats.getNCalls() * (numNonZeros * 1000.0f * 12
/ stats.getSumTime());
float opsPerSec = stats.getNCalls() * 1000000000.0f / stats.getSumTime();
log.info("{} {} \n{} {} \nOps = {} Units/sec\nIOps = {} MBytes/sec",
benchmarkName,
implName, content, stats.toString(), DF.format(opsPerSec),
DF.format(speed));
@@ -369,6 +369,7 @@ public class VectorBenchmarks {
runBenchmark(mark);
log.info("\n{}", mark);
+ log.info("\n{}", mark.asCsvString());
} catch (OptionException e) {
CommandLineUtil.printHelp(group);
}
@@ -410,6 +411,28 @@ public class VectorBenchmarks {
centroidBenchmark.benchmark(new MinkowskiDistanceMeasure());
}
+ private String asCsvString() {
+ StringBuilder sb = new StringBuilder(1000);
+ List<String> keys = Lists.newArrayList(statsMap.keySet());
+ Collections.sort(keys);
+ Map<Integer,String> implMap = Maps.newHashMap();
+ for (Entry<String,Integer> e : implType.entrySet()) {
+ implMap.put(e.getValue(), e.getKey());
+ }
+
+ for (String benchmarkName : keys) {
+ int i = 0;
+ for (String[] stats : statsMap.get(benchmarkName)) {
+ sb.append(benchmarkName + ",");
+ sb.append(implMap.get(i++) + ",");
+ sb.append(stats[7].trim().split("=|/")[1].trim());
+ sb.append('\n');
+ }
+ }
+ sb.append('\n');
+ return sb.toString();
+ }
+
@Override
public String toString() {
int pad = 24;