From 2e1c899f932a2288c5bc0bdbaf0c5f05a7a459e9 Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Tue, 12 Aug 2014 05:19:07 +0200 Subject: [PATCH] added performance test profiles --- pom.xml | 13 +- src/main/java/experiment/Experiment1.java | 2 +- src/main/java/experiment/Experiment2.java | 2 +- .../ThroughputTimestampAnalysisTest.java | 4 +- src/test/java/teetime/util/StopWatchTest.java | 2 + .../throughput/ThroughputAnalysisTest.java | 2 +- .../ThroughputTimestampAnalysisTest.java | 4 +- .../examples/ChwComparisonMethodcall.java | 4 +- .../examples/NieComparisonMethodcall.java | 4 +- ...odCallThoughputTimestampAnalysis1Test.java | 6 +- ...odCallThoughputTimestampAnalysis2Test.java | 2 +- ...odCallThoughputTimestampAnalysis3Test.java | 2 +- ...odCallThoughputTimestampAnalysis4Test.java | 2 +- ...odCallThoughputTimestampAnalysis5Test.java | 2 +- ...odCallThoughputTimestampAnalysis6Test.java | 2 +- ...odCallThoughputTimestampAnalysis7Test.java | 2 +- ...odCallThoughputTimestampAnalysis8Test.java | 2 +- ...dCallThoughputTimestampAnalysis12Test.java | 2 +- ...dCallThoughputTimestampAnalysis13Test.java | 2 +- .../ChwHomeComparisonMethodcallWithPorts.java | 116 ++++++++++++++++++ ...ChwWorkComparisonMethodcallWithPorts.java} | 49 ++------ .../ComparisonMethodcallWithPorts.java | 48 ++++++++ ...NieWorkComparisonMethodcallWithPorts.java} | 43 ++----- ...odCallThoughputTimestampAnalysis9Test.java | 2 +- ...dCallThoughputTimestampAnalysis10Test.java | 2 +- ...dCallThoughputTimestampAnalysis11Test.java | 2 +- ...dCallThoughputTimestampAnalysis14Test.java | 2 +- ...dCallThoughputTimestampAnalysis15Test.java | 2 +- .../experiment16/ChwHomePerformanceCheck.java | 33 +++++ .../experiment16/ChwWorkPerformanceCheck.java | 33 +++++ ...dCallThoughputTimestampAnalysis16Test.java | 33 ++--- ...dCallThoughputTimestampAnalysis17Test.java | 2 +- ...dCallThoughputTimestampAnalysis19Test.java | 2 +- .../examples/kiekerdays/TimingsReader.java | 2 +- .../ChwHomeTcpTraceReadingTest.java | 2 +- ...omeTcpTraceReconstructionAnalysisTest.java | 2 +- ...hwHomeTraceReconstructionAnalysisTest.java | 2 +- ...orkTcpTraceReconstructionAnalysisTest.java | 2 +- ...hwWorkTraceReconstructionAnalysisTest.java | 2 +- ...KiekerTraceReconstructionAnalysisTest.java | 2 +- ...ReconstructionAnalysisWithThreadsTest.java | 2 +- ...ReconstructionAnalysisWithThreadsTest.java | 2 +- ...TraceReductionAnalysisWithThreadsTest.java | 2 +- .../{test => util}/MeasurementRepository.java | 2 +- .../java/util/PerformanceCheckProfile.java | 9 ++ .../PerformanceCheckProfileRepository.java | 35 ++++++ .../{test => util}/PerformanceResult.java | 4 +- .../java/{test => util}/PerformanceTest.java | 3 +- .../java}/util/StatisticsUtil.java | 4 +- 49 files changed, 369 insertions(+), 138 deletions(-) create mode 100644 src/test/java/teetime/variant/methodcallWithPorts/examples/ChwHomeComparisonMethodcallWithPorts.java rename src/test/java/teetime/variant/methodcallWithPorts/examples/{ChwComparisonMethodcallWithPorts.java => ChwWorkComparisonMethodcallWithPorts.java} (75%) create mode 100644 src/test/java/teetime/variant/methodcallWithPorts/examples/ComparisonMethodcallWithPorts.java rename src/test/java/teetime/variant/methodcallWithPorts/examples/{NieComparisonMethodcallWithPorts.java => NieWorkComparisonMethodcallWithPorts.java} (70%) create mode 100644 src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwHomePerformanceCheck.java create mode 100644 src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwWorkPerformanceCheck.java rename src/test/java/{test => util}/MeasurementRepository.java (93%) create mode 100644 src/test/java/util/PerformanceCheckProfile.java create mode 100644 src/test/java/util/PerformanceCheckProfileRepository.java rename src/test/java/{test => util}/PerformanceResult.java (94%) rename src/test/java/{test => util}/PerformanceTest.java (97%) rename src/{main/java/teetime => test/java}/util/StatisticsUtil.java (98%) diff --git a/pom.xml b/pom.xml index 67d94dc9..5a2b1e31 100644 --- a/pom.xml +++ b/pom.xml @@ -33,11 +33,13 @@ <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>1.3</version> + <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>1.3</version> + <scope>test</scope> </dependency> <dependency> <groupId>net.kieker-monitoring</groupId> @@ -53,11 +55,13 @@ <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.3.6</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> @@ -79,12 +83,19 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> + <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>versions-maven-plugin</artifactId> + <version>2.1</version> + </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> @@ -97,7 +108,7 @@ </execution> </executions> <configuration> - <finalName>uber-${artifactId}-${version}</finalName> + <finalName>${project.artifactId}-${project.version}</finalName> </configuration> </plugin> </plugins> diff --git a/src/main/java/experiment/Experiment1.java b/src/main/java/experiment/Experiment1.java index ef49b2c0..8793f7d0 100644 --- a/src/main/java/experiment/Experiment1.java +++ b/src/main/java/experiment/Experiment1.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.Callable; -import teetime.util.StatisticsUtil; import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy; import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread; import teetime.variant.explicitScheduling.framework.core.Analysis; @@ -33,6 +32,7 @@ import teetime.variant.explicitScheduling.framework.core.Pipeline; import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe; import teetime.variant.explicitScheduling.framework.sequential.QueuePipe; import teetime.variant.explicitScheduling.stage.NoopFilter; +import util.StatisticsUtil; import kieker.analysis.AnalysisController; import kieker.analysis.IAnalysisController; diff --git a/src/main/java/experiment/Experiment2.java b/src/main/java/experiment/Experiment2.java index 13c08fc8..8f488558 100644 --- a/src/main/java/experiment/Experiment2.java +++ b/src/main/java/experiment/Experiment2.java @@ -34,7 +34,6 @@ import kieker.analysis.stage.StartTimestampFilter; import kieker.analysis.stage.StopTimestampFilter; import kieker.common.configuration.Configuration; -import teetime.util.StatisticsUtil; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread; import teetime.variant.explicitScheduling.framework.core.Analysis; @@ -43,6 +42,7 @@ import teetime.variant.explicitScheduling.framework.core.Pipeline; import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe; import teetime.variant.explicitScheduling.framework.sequential.QueuePipe; import teetime.variant.explicitScheduling.stage.NoopFilter; +import util.StatisticsUtil; /** * @author Nils Christian Ehmke diff --git a/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java index e4177ad8..3bbd1bb9 100644 --- a/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java +++ b/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java @@ -21,10 +21,10 @@ import java.util.concurrent.Callable; import org.junit.Test; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; +import util.StatisticsUtil; import kieker.analysis.examples.ThroughputTimestampAnalysis; import kieker.analysis.exception.AnalysisConfigurationException; diff --git a/src/test/java/teetime/util/StopWatchTest.java b/src/test/java/teetime/util/StopWatchTest.java index d61450e9..6ecf46a0 100644 --- a/src/test/java/teetime/util/StopWatchTest.java +++ b/src/test/java/teetime/util/StopWatchTest.java @@ -7,6 +7,8 @@ import java.util.Map; import org.junit.Test; +import util.StatisticsUtil; + public class StopWatchTest { private static final int NUM_ITERATIONS = 1000000; diff --git a/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java index 677abf64..d4fb3f2d 100644 --- a/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java +++ b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java @@ -20,7 +20,7 @@ import java.util.concurrent.Callable; import org.junit.Test; import teetime.util.StopWatch; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java index df305466..d6a3a393 100644 --- a/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java +++ b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java @@ -21,9 +21,9 @@ import java.util.concurrent.Callable; import org.junit.Test; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; -import test.PerformanceTest; +import util.PerformanceTest; +import util.StatisticsUtil; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/ChwComparisonMethodcall.java b/src/test/java/teetime/variant/methodcall/examples/ChwComparisonMethodcall.java index 4c407987..084b8f39 100644 --- a/src/test/java/teetime/variant/methodcall/examples/ChwComparisonMethodcall.java +++ b/src/test/java/teetime/variant/methodcall/examples/ChwComparisonMethodcall.java @@ -20,8 +20,8 @@ import teetime.variant.methodcall.examples.experiment07.MethodCallThoughputTimes import teetime.variant.methodcall.examples.experiment08.MethodCallThoughputTimestampAnalysis8Test; import teetime.variant.methodcall.examples.experiment12.MethodCallThoughputTimestampAnalysis12Test; import teetime.variant.methodcall.examples.experiment13.MethodCallThoughputTimestampAnalysis13Test; -import test.PerformanceResult; -import test.PerformanceTest; +import util.PerformanceResult; +import util.PerformanceTest; @RunWith(Suite.class) @SuiteClasses({ diff --git a/src/test/java/teetime/variant/methodcall/examples/NieComparisonMethodcall.java b/src/test/java/teetime/variant/methodcall/examples/NieComparisonMethodcall.java index c4ac6dc7..ba1ff285 100644 --- a/src/test/java/teetime/variant/methodcall/examples/NieComparisonMethodcall.java +++ b/src/test/java/teetime/variant/methodcall/examples/NieComparisonMethodcall.java @@ -20,8 +20,8 @@ import teetime.variant.methodcall.examples.experiment07.MethodCallThoughputTimes import teetime.variant.methodcall.examples.experiment08.MethodCallThoughputTimestampAnalysis8Test; import teetime.variant.methodcall.examples.experiment12.MethodCallThoughputTimestampAnalysis12Test; import teetime.variant.methodcall.examples.experiment13.MethodCallThoughputTimestampAnalysis13Test; -import test.PerformanceResult; -import test.PerformanceTest; +import util.PerformanceResult; +import util.PerformanceTest; @RunWith(Suite.class) @SuiteClasses({ diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java index 8c6362ba..45a41b5c 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java @@ -20,10 +20,10 @@ import static org.junit.Assert.assertEquals; import org.junit.Test; import teetime.util.ConstructorClosure; -import teetime.util.StatisticsUtil; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceResult; -import test.PerformanceTest; +import util.PerformanceResult; +import util.PerformanceTest; +import util.StatisticsUtil; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java index 20da6308..a8f7c001 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java index 0bfc8205..f0254708 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java index ba5f8095..bc5b0ea5 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java index 22c2ec2b..6922fc2a 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java index fa2150df..7971dfa4 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java index 7ced7c15..77249c1d 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java index e2de139f..c46ae4e1 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java index 86e662f9..61207a67 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java index 246a968a..d0d50d5b 100644 --- a/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java +++ b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwHomeComparisonMethodcallWithPorts.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwHomeComparisonMethodcallWithPorts.java new file mode 100644 index 00000000..28b2bb3f --- /dev/null +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwHomeComparisonMethodcallWithPorts.java @@ -0,0 +1,116 @@ +package teetime.variant.methodcallWithPorts.examples; + +import static org.junit.Assert.assertEquals; + +import java.util.Map; +import java.util.Map.Entry; + +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwHomeComparisonMethodcallWithPorts implements PerformanceCheckProfile { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwHome"; + } + + @Override + public void check() { + Map<String, PerformanceResult> performanceResults = PerformanceTest.measurementRepository.performanceResults; + for (Entry<String, PerformanceResult> entry : performanceResults.entrySet()) { + System.out.println("---> " + entry.getKey() + "\n" + entry.getValue()); + } + + PerformanceResult test1 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); + PerformanceResult test9 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)"); + PerformanceResult test10 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); + PerformanceResult test11 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)"); + PerformanceResult test14 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); + PerformanceResult test15 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)"); + PerformanceResult test16a = performanceResults + .get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test16b = performanceResults + .get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test16c = performanceResults + .get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test17 = performanceResults + .get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)"); + PerformanceResult test19a = performanceResults + .get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)"); + PerformanceResult test19b = performanceResults + .get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)"); + PerformanceResult test19c = performanceResults + .get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)"); + + double value14 = (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5); + double value10 = (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5); + double value11 = (double) test11.quantiles.get(0.5) / test1.quantiles.get(0.5); + double value9 = (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5); + double value15 = (double) test15.quantiles.get(0.5) / test1.quantiles.get(0.5); + double value17 = (double) test17.quantiles.get(0.5) / test1.quantiles.get(0.5); + + System.out.println("value14: " + value14); + System.out.println("value10: " + value10); + System.out.println("value11: " + value11); + System.out.println("value9: " + value9); + System.out.println("value15: " + value15); + System.out.println("value17: " + value17); + + // until 25.06.2014 (incl.) + // assertEquals(60, (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // assertEquals(14, (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); + // assertEquals(32, (double) test11.quantiles.get(0.5) / test1.quantiles.get(0.5), 4.1); + // assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); + // assertEquals(44, (double) test15.quantiles.get(0.5) / test1.quantiles.get(0.5), 4.1); + // assertEquals(39, (double) test17.quantiles.get(0.5) / test1.quantiles.get(0.5), 4.1); + + // since 26.06.2014 (incl.) + // assertEquals(76, value14, 5.1); // +16 + // assertEquals(26, value10, 2.1); // +14 + // assertEquals(44, value11, 4.1); // +12 + // assertEquals(36, value9, 2.1); // +14 + // assertEquals(44, value15, 4.1); // +0 + // assertEquals(53, value17, 4.1); // +14 + + // // since 04.07.2014 (incl.) + // assertEquals(86, value14, 5.1); // +16 + // assertEquals(26, value10, 2.1); // +0 + // assertEquals(41, value11, 4.1); // -3 + // assertEquals(42, value9, 2.1); // +6 + // assertEquals(44, value15, 4.1); // +0 + // assertEquals(53, value17, 4.1); // +0 + + // since 11.08.2014 (incl.) + assertEquals(103, value14, 5.1); // +17 + assertEquals(47, value10, 2.1); // +21 + assertEquals(41, value11, 4.1); // -3 + assertEquals(42, value9, 2.1); // +6 + assertEquals(44, value15, 4.1); // +0 + assertEquals(53, value17, 4.1); // +0 + + // below results vary too much, possibly due to the OS' scheduler + // assertEquals(RESULT_TESTS_16, (double) test16a.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // assertEquals(RESULT_TESTS_16, (double) test16b.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // assertEquals(RESULT_TESTS_16, (double) test16c.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // + // assertEquals(RESULT_TESTS_19, (double) test19a.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // assertEquals(RESULT_TESTS_19, (double) test19b.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // assertEquals(RESULT_TESTS_19, (double) test19c.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + + // check speedup + assertEquals(2, (double) test16a.overallDurationInNs / test16b.overallDurationInNs, 0.3); + assertEquals(2.5, (double) test16a.overallDurationInNs / test16c.overallDurationInNs, 0.2); + + assertEquals(2, (double) test19a.overallDurationInNs / test19b.overallDurationInNs, 0.3); + assertEquals(2.5, (double) test19a.overallDurationInNs / test19c.overallDurationInNs, 0.3); + } + +} diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwComparisonMethodcallWithPorts.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwWorkComparisonMethodcallWithPorts.java similarity index 75% rename from src/test/java/teetime/variant/methodcallWithPorts/examples/ChwComparisonMethodcallWithPorts.java rename to src/test/java/teetime/variant/methodcallWithPorts/examples/ChwWorkComparisonMethodcallWithPorts.java index b44a916d..3ef1f995 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwComparisonMethodcallWithPorts.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/ChwWorkComparisonMethodcallWithPorts.java @@ -5,42 +5,19 @@ import static org.junit.Assert.assertEquals; import java.util.Map; import java.util.Map.Entry; -import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -import teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; -import teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test; -import teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test; -import teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test; -import teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test; -import teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test; -import teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test; -import teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test; -import teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test; -import test.PerformanceResult; -import test.PerformanceTest; - -@RunWith(Suite.class) -@SuiteClasses({ - MethodCallThoughputTimestampAnalysis1Test.class, - MethodCallThoughputTimestampAnalysis9Test.class, - MethodCallThoughputTimestampAnalysis10Test.class, - MethodCallThoughputTimestampAnalysis11Test.class, - MethodCallThoughputTimestampAnalysis14Test.class, - MethodCallThoughputTimestampAnalysis15Test.class, - MethodCallThoughputTimestampAnalysis16Test.class, - MethodCallThoughputTimestampAnalysis17Test.class, - MethodCallThoughputTimestampAnalysis19Test.class, -}) -public class ChwComparisonMethodcallWithPorts { - - private static final double RESULT_TESTS_16 = 30; - private static final double RESULT_TESTS_19 = 70; - - @AfterClass - public static void compareResults() { +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwWorkComparisonMethodcallWithPorts implements PerformanceCheckProfile { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwWork"; + } + + @Override + public void check() { Map<String, PerformanceResult> performanceResults = PerformanceTest.measurementRepository.performanceResults; for (Entry<String, PerformanceResult> entry : performanceResults.entrySet()) { System.out.println("---> " + entry.getKey() + "\n" + entry.getValue()); diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/ComparisonMethodcallWithPorts.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/ComparisonMethodcallWithPorts.java new file mode 100644 index 00000000..c2a142e7 --- /dev/null +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/ComparisonMethodcallWithPorts.java @@ -0,0 +1,48 @@ +package teetime.variant.methodcallWithPorts.examples; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +import teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; +import teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test; +import teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test; +import teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test; +import teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test; +import teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test; +import teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test; +import teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test; +import teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test; +import util.PerformanceCheckProfile; +import util.PerformanceCheckProfileRepository; + +@RunWith(Suite.class) +@SuiteClasses({ + MethodCallThoughputTimestampAnalysis1Test.class, + MethodCallThoughputTimestampAnalysis9Test.class, + MethodCallThoughputTimestampAnalysis10Test.class, + MethodCallThoughputTimestampAnalysis11Test.class, + MethodCallThoughputTimestampAnalysis14Test.class, + MethodCallThoughputTimestampAnalysis15Test.class, + MethodCallThoughputTimestampAnalysis16Test.class, + MethodCallThoughputTimestampAnalysis17Test.class, + MethodCallThoughputTimestampAnalysis19Test.class, +}) +public class ComparisonMethodcallWithPorts { + + @BeforeClass + public static void beforeClass() { + PerformanceCheckProfileRepository.INSTANCE.register(ComparisonMethodcallWithPorts.class, new ChwWorkComparisonMethodcallWithPorts()); + PerformanceCheckProfileRepository.INSTANCE.register(ComparisonMethodcallWithPorts.class, new ChwHomeComparisonMethodcallWithPorts()); + PerformanceCheckProfileRepository.INSTANCE.register(ComparisonMethodcallWithPorts.class, new NieWorkComparisonMethodcallWithPorts()); + }; + + @AfterClass + public static void compareResults() { + PerformanceCheckProfile pcp = PerformanceCheckProfileRepository.INSTANCE.get(ComparisonMethodcallWithPorts.class); + pcp.check(); + } + +} diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/NieComparisonMethodcallWithPorts.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/NieWorkComparisonMethodcallWithPorts.java similarity index 70% rename from src/test/java/teetime/variant/methodcallWithPorts/examples/NieComparisonMethodcallWithPorts.java rename to src/test/java/teetime/variant/methodcallWithPorts/examples/NieWorkComparisonMethodcallWithPorts.java index 94028b1a..73472fee 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/NieComparisonMethodcallWithPorts.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/NieWorkComparisonMethodcallWithPorts.java @@ -5,42 +5,19 @@ import static org.junit.Assert.assertEquals; import java.util.Map; import java.util.Map.Entry; -import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; -import teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; -import teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test; -import teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test; -import teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test; -import teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test; -import teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test; -import teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test; -import teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test; -import teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test; -import test.PerformanceResult; -import test.PerformanceTest; +public class NieWorkComparisonMethodcallWithPorts implements PerformanceCheckProfile { -@RunWith(Suite.class) -@SuiteClasses({ - MethodCallThoughputTimestampAnalysis1Test.class, - MethodCallThoughputTimestampAnalysis9Test.class, - MethodCallThoughputTimestampAnalysis10Test.class, - MethodCallThoughputTimestampAnalysis11Test.class, - MethodCallThoughputTimestampAnalysis14Test.class, - MethodCallThoughputTimestampAnalysis15Test.class, - MethodCallThoughputTimestampAnalysis16Test.class, - MethodCallThoughputTimestampAnalysis17Test.class, - MethodCallThoughputTimestampAnalysis19Test.class, -}) -public class NieComparisonMethodcallWithPorts { - - private static final double RESULT_TESTS_16 = 30; - private static final double RESULT_TESTS_19 = 70; + @Override + public String getCorrespondingPerformanceProfile() { + return "NieWork"; + } - @AfterClass - public static void compareResults() { + @Override + public void check() { Map<String, PerformanceResult> performanceResults = PerformanceTest.measurementRepository.performanceResults; for (Entry<String, PerformanceResult> entry : performanceResults.entrySet()) { System.out.println("---> " + entry.getKey() + "\n" + entry.getValue()); diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java index ba57740c..b6f0f532 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java index 0024fa18..14858bc3 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java index c9dc1645..1b225360 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java index 6a49130a..e32ecf51 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java index d6a5f586..bf350f0c 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java @@ -19,7 +19,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwHomePerformanceCheck.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwHomePerformanceCheck.java new file mode 100644 index 00000000..a924a70d --- /dev/null +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwHomePerformanceCheck.java @@ -0,0 +1,33 @@ +package teetime.variant.methodcallWithPorts.examples.experiment16; + +import static org.junit.Assert.assertEquals; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwHomePerformanceCheck implements PerformanceCheckProfile { + + @Override + public void check() { + PerformanceResult test16a = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test16b = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test16c = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + // check speedup + double speedupB = (double) test16a.overallDurationInNs / test16b.overallDurationInNs; + double speedupC = (double) test16a.overallDurationInNs / test16c.overallDurationInNs; + + System.out.println("speedupB: " + speedupB); + System.out.println("speedupC: " + speedupC); + + assertEquals(2, speedupB, 0.3); + assertEquals(3, speedupC, 0.3); + } + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwHome"; + } +} diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwWorkPerformanceCheck.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwWorkPerformanceCheck.java new file mode 100644 index 00000000..c60b6262 --- /dev/null +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/ChwWorkPerformanceCheck.java @@ -0,0 +1,33 @@ +package teetime.variant.methodcallWithPorts.examples.experiment16; + +import static org.junit.Assert.assertEquals; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwWorkPerformanceCheck implements PerformanceCheckProfile { + + @Override + public void check() { + PerformanceResult test16a = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test16b = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + PerformanceResult test16c = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); + // check speedup + double speedupB = (double) test16a.overallDurationInNs / test16b.overallDurationInNs; + double speedupC = (double) test16a.overallDurationInNs / test16c.overallDurationInNs; + + System.out.println("speedupB: " + speedupB); + System.out.println("speedupC: " + speedupC); + + assertEquals(2, speedupB, 0.3); + assertEquals(2.5, speedupC, 0.3); + } + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwWork"; + } +} diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java index 13dd2e8e..46147ec3 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java @@ -15,9 +15,8 @@ ***************************************************************************/ package teetime.variant.methodcallWithPorts.examples.experiment16; -import static org.junit.Assert.assertEquals; - import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; @@ -25,12 +24,13 @@ import org.junit.runners.MethodSorters; import teetime.util.ConstructorClosure; import teetime.util.ListUtil; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceResult; -import test.PerformanceTest; +import util.PerformanceCheckProfile; +import util.PerformanceCheckProfileRepository; +import util.PerformanceTest; /** * @author Christian Wulf - * + * * @since 1.10 */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) @@ -38,6 +38,12 @@ public class MethodCallThoughputTimestampAnalysis16Test extends PerformanceTest // TODO use @Parameter for the number of threads + @BeforeClass + public static void beforeClass() { + PerformanceCheckProfileRepository.INSTANCE.register(MethodCallThoughputTimestampAnalysis16Test.class, new ChwWorkPerformanceCheck()); + PerformanceCheckProfileRepository.INSTANCE.register(MethodCallThoughputTimestampAnalysis16Test.class, new ChwHomePerformanceCheck()); + }; + @Test public void testWithManyObjectsAnd1Thread() { this.performAnalysis(1); @@ -55,21 +61,8 @@ public class MethodCallThoughputTimestampAnalysis16Test extends PerformanceTest @AfterClass public static void afterClass() { - PerformanceResult test16a = PerformanceTest.measurementRepository.performanceResults - .get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); - PerformanceResult test16b = PerformanceTest.measurementRepository.performanceResults - .get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); - PerformanceResult test16c = PerformanceTest.measurementRepository.performanceResults - .get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)"); - // check speedup - double speedupB = (double) test16a.overallDurationInNs / test16b.overallDurationInNs; - double speedupC = (double) test16a.overallDurationInNs / test16c.overallDurationInNs; - - System.out.println("speedupB: " + speedupB); - System.out.println("speedupC: " + speedupC); - - assertEquals(2, speedupB, 0.3); - assertEquals(2.5, speedupC, 0.3); + PerformanceCheckProfile pcp = PerformanceCheckProfileRepository.INSTANCE.get(MethodCallThoughputTimestampAnalysis16Test.class); + pcp.check(); } private void performAnalysis(final int numThreads) { diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java index 869f09b9..804a930d 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java @@ -20,7 +20,7 @@ import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.util.ListUtil; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java index 25f19d8a..03951f82 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java @@ -22,7 +22,7 @@ import org.junit.runners.MethodSorters; import teetime.util.ConstructorClosure; import teetime.util.ListUtil; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceTest; +import util.PerformanceTest; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/kiekerdays/TimingsReader.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/kiekerdays/TimingsReader.java index 232b7ff9..1b55697f 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/kiekerdays/TimingsReader.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/kiekerdays/TimingsReader.java @@ -6,7 +6,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import teetime.util.StatisticsUtil; +import util.StatisticsUtil; import com.google.common.base.Charsets; import com.google.common.collect.ImmutableList; diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReading/ChwHomeTcpTraceReadingTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReading/ChwHomeTcpTraceReadingTest.java index d21667dc..b0b1a7b4 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReading/ChwHomeTcpTraceReadingTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReading/ChwHomeTcpTraceReadingTest.java @@ -33,8 +33,8 @@ import org.junit.Test; import org.junit.runners.MethodSorters; import teetime.util.ListUtil; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java index 25cbe39a..f78436fc 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java @@ -31,8 +31,8 @@ import org.junit.Before; import org.junit.Test; import teetime.util.ListUtil; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java index 67043576..dd361ea7 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java @@ -30,8 +30,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; import kieker.analysis.plugin.filter.flow.TraceEventRecords; diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java index 93882553..48658d2f 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java @@ -24,8 +24,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; /** * @author Christian Wulf diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java index 5e112cd7..c123e24e 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java @@ -30,8 +30,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; import kieker.analysis.plugin.filter.flow.TraceEventRecords; diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java index d50794c3..dd4c3064 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java @@ -30,8 +30,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; import kieker.analysis.plugin.filter.flow.TraceEventRecords; diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java index 77025f22..de3ac414 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java @@ -33,10 +33,10 @@ import org.junit.Test; import org.junit.runners.MethodSorters; import teetime.util.ListUtil; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; import teetime.variant.methodcallWithPorts.framework.core.Analysis; import teetime.variant.methodcallWithPorts.framework.core.pipe.SpScPipe; +import util.StatisticsUtil; import kieker.common.record.IMonitoringRecord; diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java index dd066a91..800b29b2 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java @@ -28,10 +28,10 @@ import org.junit.Test; import org.junit.runners.MethodSorters; import teetime.util.ListUtil; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; import teetime.variant.methodcallWithPorts.framework.core.Analysis; import teetime.variant.methodcallWithPorts.framework.core.pipe.SpScPipe; +import util.StatisticsUtil; import kieker.common.record.IMonitoringRecord; diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java index d5bd3c9c..11aaa5b6 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java @@ -28,8 +28,8 @@ import org.junit.Test; import org.junit.runners.MethodSorters; import teetime.util.ListUtil; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; +import util.StatisticsUtil; /** * @author Christian Wulf diff --git a/src/test/java/test/MeasurementRepository.java b/src/test/java/util/MeasurementRepository.java similarity index 93% rename from src/test/java/test/MeasurementRepository.java rename to src/test/java/util/MeasurementRepository.java index 03d1219a..c970174d 100644 --- a/src/test/java/test/MeasurementRepository.java +++ b/src/test/java/util/MeasurementRepository.java @@ -1,4 +1,4 @@ -package test; +package util; import java.util.HashMap; import java.util.Map; diff --git a/src/test/java/util/PerformanceCheckProfile.java b/src/test/java/util/PerformanceCheckProfile.java new file mode 100644 index 00000000..4fd71556 --- /dev/null +++ b/src/test/java/util/PerformanceCheckProfile.java @@ -0,0 +1,9 @@ +package util; + +public interface PerformanceCheckProfile { + + String getCorrespondingPerformanceProfile(); + + void check(); + +} diff --git a/src/test/java/util/PerformanceCheckProfileRepository.java b/src/test/java/util/PerformanceCheckProfileRepository.java new file mode 100644 index 00000000..d5941015 --- /dev/null +++ b/src/test/java/util/PerformanceCheckProfileRepository.java @@ -0,0 +1,35 @@ +package util; + +import java.util.HashMap; +import java.util.Map; + +public class PerformanceCheckProfileRepository { + + public static final PerformanceCheckProfileRepository INSTANCE = new PerformanceCheckProfileRepository(); + + private final Map<Class<?>, PerformanceCheckProfile> performanceCheckProfiles = new HashMap<Class<?>, PerformanceCheckProfile>(); + + private String currentProfile; + + public PerformanceCheckProfileRepository() { + this.currentProfile = System.getProperty("TestProfile", "ChwWork"); + } + + public void setCurrentProfile(final String currentProfile) { + this.currentProfile = currentProfile; + } + + public String getCurrentProfile() { + return this.currentProfile; + } + + public void register(final Class<?> testClass, final PerformanceCheckProfile profile) { + if (profile.getCorrespondingPerformanceProfile().equals(this.currentProfile)) { + this.performanceCheckProfiles.put(testClass, profile); + } + } + + public PerformanceCheckProfile get(final Class<?> clazz) { + return this.performanceCheckProfiles.get(clazz); + } +} diff --git a/src/test/java/test/PerformanceResult.java b/src/test/java/util/PerformanceResult.java similarity index 94% rename from src/test/java/test/PerformanceResult.java rename to src/test/java/util/PerformanceResult.java index e950ea40..36c82832 100644 --- a/src/test/java/test/PerformanceResult.java +++ b/src/test/java/util/PerformanceResult.java @@ -1,9 +1,7 @@ -package test; +package util; import java.util.Map; -import teetime.util.StatisticsUtil; - public class PerformanceResult { public long overallDurationInNs; diff --git a/src/test/java/test/PerformanceTest.java b/src/test/java/util/PerformanceTest.java similarity index 97% rename from src/test/java/test/PerformanceTest.java rename to src/test/java/util/PerformanceTest.java index 5d74b846..b85aacc4 100644 --- a/src/test/java/test/PerformanceTest.java +++ b/src/test/java/util/PerformanceTest.java @@ -1,4 +1,4 @@ -package test; +package util; import java.util.ArrayList; import java.util.List; @@ -11,7 +11,6 @@ import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; -import teetime.util.StatisticsUtil; import teetime.util.StopWatch; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; diff --git a/src/main/java/teetime/util/StatisticsUtil.java b/src/test/java/util/StatisticsUtil.java similarity index 98% rename from src/main/java/teetime/util/StatisticsUtil.java rename to src/test/java/util/StatisticsUtil.java index a5120bba..18915461 100644 --- a/src/main/java/teetime/util/StatisticsUtil.java +++ b/src/test/java/util/StatisticsUtil.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.util; +package util; import java.util.ArrayList; import java.util.Collections; @@ -24,8 +24,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; +import teetime.util.MathUtil; import teetime.variant.explicitScheduling.examples.throughput.TimestampObject; -import test.PerformanceResult; /** * @author Christian Wulf -- GitLab