From 16f4f4c72a70927c0d50e5532612b4bee430532a Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Tue, 24 Jun 2014 19:42:02 +0200
Subject: [PATCH] prepared a performance test suite

---
 src/main/java/teetime/util/StatisticsUtil.java | 15 ++++++++++++++-
 src/test/java/test/PerformanceResult.java      |  7 +++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/main/java/teetime/util/StatisticsUtil.java b/src/main/java/teetime/util/StatisticsUtil.java
index e1dd1fff..812bf767 100644
--- a/src/main/java/teetime/util/StatisticsUtil.java
+++ b/src/main/java/teetime/util/StatisticsUtil.java
@@ -24,6 +24,7 @@ import java.util.Map.Entry;
 import java.util.concurrent.TimeUnit;
 
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import test.PerformanceResult;
 
 /**
  * @author Christian Wulf
@@ -43,7 +44,9 @@ public class StatisticsUtil {
 
 	}
 
-	public static void printStatistics(final long overallDurationInNs, final List<TimestampObject> timestampObjects) {
+	public static PerformanceResult printStatistics(final long overallDurationInNs, final List<TimestampObject> timestampObjects) {
+		PerformanceResult performanceResult = new PerformanceResult();
+
 		System.out.println("Duration: " + TimeUnit.NANOSECONDS.toMillis(overallDurationInNs) + " ms");
 
 		final List<Long> sortedDurationsInNs = new ArrayList<Long>(timestampObjects.size() / 2);
@@ -56,18 +59,28 @@ public class StatisticsUtil {
 			sumInNs += durationInNs;
 		}
 
+		performanceResult.sumInNs = sumInNs;
+
 		final Map<Double, Long> quintileValues = StatisticsUtil.calculateQuintiles(sortedDurationsInNs);
 
+		performanceResult.quantiles = quintileValues;
+
 		final long avgDurInNs = sumInNs / (timestampObjects.size() / 2);
 		System.out.println("avg duration: " + TimeUnit.NANOSECONDS.toMicros(avgDurInNs) + " µs");
 
+		performanceResult.avgDurInNs = avgDurInNs;
+
 		printQuintiles(quintileValues);
 
 		final long confidenceWidthInNs = StatisticsUtil.calculateConfidenceWidth(sortedDurationsInNs, avgDurInNs);
 
+		performanceResult.confidenceWidthInNs = confidenceWidthInNs;
+
 		System.out.println("confidenceWidth: " + confidenceWidthInNs + " ns");
 		System.out.println("[" + TimeUnit.NANOSECONDS.toMicros(avgDurInNs - confidenceWidthInNs) + " µs, "
 				+ TimeUnit.NANOSECONDS.toMicros(avgDurInNs + confidenceWidthInNs) + " µs]");
+
+		return performanceResult;
 	}
 
 	public static void printQuintiles(final Map<Double, Long> quintileValues) {
diff --git a/src/test/java/test/PerformanceResult.java b/src/test/java/test/PerformanceResult.java
index c4690fa5..a6a5b1a7 100644
--- a/src/test/java/test/PerformanceResult.java
+++ b/src/test/java/test/PerformanceResult.java
@@ -1,5 +1,12 @@
 package test;
 
+import java.util.Map;
+
 public class PerformanceResult {
 
+	public long sumInNs;
+	public Map<Double, Long> quantiles;
+	public long avgDurInNs;
+	public long confidenceWidthInNs;
+
 }
-- 
GitLab