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