From 42c0d361eb1ae9b6f5764f37700d034ab1515327 Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Sun, 28 Dec 2014 08:26:54 +0100 Subject: [PATCH] refactored test09; removed test10 --- .../pipe/CommittablePipeFactory.java | 35 ++++++ .../ComparisonMethodcallWithPorts.java | 4 +- .../experiment09/ChwHomePerformanceCheck.java | 38 ------- .../experiment09/ChwWorkPerformanceCheck.java | 33 ------ .../AbstractPerformanceCheck.java | 15 ++- .../ChwHomePerformanceCheck.java | 63 +++++++++++ .../ChwWorkPerformanceCheck.java | 55 ++++++++++ ...odCallThoughputTimestampAnalysis9Test.java | 26 ++++- .../MethodCallThroughputAnalysis9.java | 23 ++-- .../AbstractPerformanceCheck.java | 22 ---- .../experiment10/ChwHomePerformanceCheck.java | 34 ------ .../experiment10/ChwWorkPerformanceCheck.java | 31 ------ ...dCallThoughputTimestampAnalysis10Test.java | 70 ------------ .../MethodCallThroughputAnalysis10.java | 103 ------------------ 14 files changed, 196 insertions(+), 356 deletions(-) create mode 100644 src/main/java/teetime/framework/pipe/CommittablePipeFactory.java delete mode 100644 src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java delete mode 100644 src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java rename src/performancetest/java/teetime/examples/{experiment09 => experiment09pipeimpls}/AbstractPerformanceCheck.java (54%) create mode 100644 src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java create mode 100644 src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java rename src/performancetest/java/teetime/examples/{experiment09 => experiment09pipeimpls}/MethodCallThoughputTimestampAnalysis9Test.java (78%) rename src/performancetest/java/teetime/examples/{experiment09 => experiment09pipeimpls}/MethodCallThroughputAnalysis9.java (81%) delete mode 100644 src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java delete mode 100644 src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java delete mode 100644 src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java delete mode 100644 src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java delete mode 100644 src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java diff --git a/src/main/java/teetime/framework/pipe/CommittablePipeFactory.java b/src/main/java/teetime/framework/pipe/CommittablePipeFactory.java new file mode 100644 index 00000000..93b054e6 --- /dev/null +++ b/src/main/java/teetime/framework/pipe/CommittablePipeFactory.java @@ -0,0 +1,35 @@ +package teetime.framework.pipe; + +import teetime.framework.InputPort; +import teetime.framework.OutputPort; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; + +public class CommittablePipeFactory implements IPipeFactory { + + @Override + public <T> IPipe create(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) { + return this.create(sourcePort, targetPort, 1); + } + + @Override + public <T> IPipe create(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort, final int capacity) { + return new CommittablePipe(sourcePort, targetPort); + } + + @Override + public ThreadCommunication getThreadCommunication() { + return ThreadCommunication.INTRA; + } + + @Override + public PipeOrdering getOrdering() { + return PipeOrdering.STACK_BASED; + } + + @Override + public boolean isGrowable() { + return true; + } + +} diff --git a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java index 62694832..e9652516 100644 --- a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java @@ -7,8 +7,7 @@ import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; -import teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test; -import teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test; +import teetime.examples.experiment09pipeimpls.MethodCallThoughputTimestampAnalysis9Test; import teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test; import teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test; import teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test; @@ -21,7 +20,6 @@ import util.test.PerformanceCheckProfileRepository; @SuiteClasses({ MethodCallThoughputTimestampAnalysis1Test.class, MethodCallThoughputTimestampAnalysis9Test.class, - MethodCallThoughputTimestampAnalysis10Test.class, MethodCallThoughputTimestampAnalysis11Test.class, MethodCallThoughputTimestampAnalysis14Test.class, MethodCallThoughputTimestampAnalysis15Test.class, diff --git a/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java deleted file mode 100644 index 5c941340..00000000 --- a/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java +++ /dev/null @@ -1,38 +0,0 @@ -package teetime.examples.experiment09; - -import static org.junit.Assert.assertEquals; -import teetime.examples.HostName; - -class ChwHomePerformanceCheck extends AbstractPerformanceCheck { - - @Override - public String getCorrespondingPerformanceProfile() { - return HostName.CHW_HOME.toString(); - } - - @Override - public void check() { - super.check(); - - double medianSpeedup = (double) test09.quantiles.get(0.5) / test01.quantiles.get(0.5); - - System.out.println("medianSpeedup (09): " + medianSpeedup); - - // until 25.06.2014 (incl.) - // assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); - // since 26.06.2014 (incl.) - // assertEquals(36, value9, 2.1); // +14 - // since 04.07.2014 (incl.) - // assertEquals(42, value9, 2.1); // +6 - // since 11.08.2014 (incl.) - // assertEquals(42, value9, 2.1); // +6 - // since 31.08.2014 (incl.) - // assertEquals(44, medianSpeedup, 2.1); // +2 - // since 04.11.2014 (incl.) - // assertEquals(71, medianSpeedup, 2.1); // +33 - // since 05.12.2014 (incl.) - // assertEquals(45, medianSpeedup, 2.1); // -26 - // since 28.12.2014 (incl.) - assertEquals(56, medianSpeedup, 2.1); // +11 - } -} diff --git a/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java deleted file mode 100644 index 5359eddc..00000000 --- a/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java +++ /dev/null @@ -1,33 +0,0 @@ -package teetime.examples.experiment09; - -import static org.junit.Assert.assertEquals; - -class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { - - @Override - public String getCorrespondingPerformanceProfile() { - return "ChwWork"; - } - - @Override - public void check() { - super.check(); - - double medianSpeedup = (double) test09.quantiles.get(0.5) / test01.quantiles.get(0.5); - - System.out.println("medianSpeedup (09): " + medianSpeedup); - - // until 25.06.2014 (incl.) - // assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); - // since 26.06.2014 (incl.) - // assertEquals(36, value9, 2.1); // +14 - // since 04.07.2014 (incl.) - // assertEquals(42, value9, 2.1); // +6 - // since 27.08.2014 (incl.) - // assertEquals(77, value9, 2.1); // +35 - // since 14.10.2014 (incl.) - // assertEquals(67, medianSpeedup, 3.1); // -10 - // since 19.12.2014 (incl.) - assertEquals(53, medianSpeedup, 3.1); // -14 - } -} diff --git a/src/performancetest/java/teetime/examples/experiment09/AbstractPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java similarity index 54% rename from src/performancetest/java/teetime/examples/experiment09/AbstractPerformanceCheck.java rename to src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java index 66bccb2b..783af21b 100644 --- a/src/performancetest/java/teetime/examples/experiment09/AbstractPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java @@ -1,22 +1,27 @@ -package teetime.examples.experiment09; +package teetime.examples.experiment09pipeimpls; import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; +import util.test.AbstractProfiledPerformanceAssertion; import util.test.MeasurementRepository; import util.test.PerformanceResult; import util.test.PerformanceTest; -import util.test.AbstractProfiledPerformanceAssertion; abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAssertion { protected PerformanceResult test01; - protected PerformanceResult test09; + protected PerformanceResult test09CommittablePipes; + protected PerformanceResult test09SingleElementPipes; @Override public void check() { String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects"); test01 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); - testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testWithManyObjects"); - test09 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); + + testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testCommittablePipes"); + test09CommittablePipes = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); + + testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testSingleElementPipes"); + test09SingleElementPipes = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); } } diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java new file mode 100644 index 00000000..b2bc8c82 --- /dev/null +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java @@ -0,0 +1,63 @@ +package teetime.examples.experiment09pipeimpls; + +import static org.junit.Assert.assertEquals; +import teetime.examples.HostName; + +class ChwHomePerformanceCheck extends AbstractPerformanceCheck { + + @Override + public String getCorrespondingPerformanceProfile() { + return HostName.CHW_HOME.toString(); + } + + @Override + public void check() { + super.check(); + + checkCommittablePipes(); + checkSingleElementPipes(); + } + + private void checkCommittablePipes() { + double medianSpeedup = (double) test09CommittablePipes.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (09 committable pipes): " + medianSpeedup); + + // until 25.06.2014 (incl.) + // assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); + // since 26.06.2014 (incl.) + // assertEquals(36, value9, 2.1); // +14 + // since 04.07.2014 (incl.) + // assertEquals(42, value9, 2.1); // +6 + // since 11.08.2014 (incl.) + // assertEquals(42, value9, 2.1); // +6 + // since 31.08.2014 (incl.) + // assertEquals(44, medianSpeedup, 2.1); // +2 + // since 04.11.2014 (incl.) + // assertEquals(71, medianSpeedup, 2.1); // +33 + // since 05.12.2014 (incl.) + // assertEquals(45, medianSpeedup, 2.1); // -26 + // since 28.12.2014 (incl.) + assertEquals(56, medianSpeedup, 2.1); // +11 + } + + private void checkSingleElementPipes() { + double medianSpeedup = (double) test09SingleElementPipes.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("meanSpeedup (09 single element pipes): " + medianSpeedup); + + // since 26.06.2014 (incl.) + // assertEquals(26, value10, 2.1); // +14 + // // since 04.07.2014 (incl.) + // assertEquals(26, value10, 2.1); // +0 + // since 11.08.2014 (incl.) + // assertEquals(47, value10, 2.1); // +21 + // since 31.08.2014 (incl.) + // assertEquals(51, medianSpeedup, 3.2); // +4 + // since 13.12.2014 (incl.) + // assertEquals(40, medianSpeedup, 3.2); // -11 + // since 28.12.2014 (incl.) + assertEquals(24, medianSpeedup, 3.2); // -16 + } + +} diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java new file mode 100644 index 00000000..f29535c8 --- /dev/null +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java @@ -0,0 +1,55 @@ +package teetime.examples.experiment09pipeimpls; + +import static org.junit.Assert.assertEquals; + +class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwWork"; + } + + @Override + public void check() { + super.check(); + + checkCommittablePipes(); + checkSingleElementPipes(); + } + + private void checkCommittablePipes() { + double medianSpeedup = (double) test09CommittablePipes.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (09): " + medianSpeedup); + + // until 25.06.2014 (incl.) + // assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); + // since 26.06.2014 (incl.) + // assertEquals(36, value9, 2.1); // +14 + // since 04.07.2014 (incl.) + // assertEquals(42, value9, 2.1); // +6 + // since 27.08.2014 (incl.) + // assertEquals(77, value9, 2.1); // +35 + // since 14.10.2014 (incl.) + // assertEquals(67, medianSpeedup, 3.1); // -10 + // since 19.12.2014 (incl.) + assertEquals(53, medianSpeedup, 3.1); // -14 + } + + private void checkSingleElementPipes() { + double medianSpeedup = (double) test09SingleElementPipes.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (09 single element pipes): " + medianSpeedup); + + // until 25.06.2014 (incl.) + // assertEquals(14, (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); + // since 26.06.2014 (incl.) + // assertEquals(26, meanSpeedup, 2.1); // +14 + // since 04.07.2014 (incl.) + // assertEquals(26, meanSpeedup, 2.1); // +0 + // since 27.08.2014 (incl.) + // assertEquals(56, meanSpeedup, 2.1); // +30 + // since 14.10.2014 (incl.) + assertEquals(25, medianSpeedup, 3.1); // -31 + } +} diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java similarity index 78% rename from src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java rename to src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java index a8072963..f51b3042 100644 --- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java @@ -13,16 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment09; +package teetime.examples.experiment09pipeimpls; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; +import teetime.framework.pipe.CommittablePipeFactory; +import teetime.framework.pipe.IPipeFactory; +import teetime.framework.pipe.SingleElementPipeFactory; import teetime.util.ConstructorClosure; import teetime.util.TimestampObject; -import util.test.PerformanceTest; import util.test.AbstractProfiledPerformanceAssertion; +import util.test.PerformanceTest; /** * @author Christian Wulf @@ -35,16 +38,27 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest { public static void beforeClass() { PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis9Test.class, new ChwWorkPerformanceCheck()); PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis9Test.class, new ChwHomePerformanceCheck()); - }; + } @AfterClass public static void afterClass() { AbstractProfiledPerformanceAssertion performanceCheckProfile = PERFORMANCE_CHECK_PROFILE_REPOSITORY.get(MethodCallThoughputTimestampAnalysis9Test.class); performanceCheckProfile.check(); - }; + } @Test - public void testWithManyObjects() { + public void testCommittablePipes() throws Exception { + IPipeFactory pipeFactory = new CommittablePipeFactory(); + testWithManyObjects(pipeFactory); + } + + @Test + public void testSingleElementPipes() throws Exception { + IPipeFactory pipeFactory = new SingleElementPipeFactory(); + testWithManyObjects(pipeFactory); + } + + private void testWithManyObjects(final IPipeFactory pipeFactory) { System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS=" + NUM_NOOP_FILTERS + "..."); @@ -57,7 +71,7 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest { return new TimestampObject(); } }); - analysis.init(); + analysis.init(pipeFactory); this.stopWatch.start(); try { diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThroughputAnalysis9.java similarity index 81% rename from src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java rename to src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThroughputAnalysis9.java index 9f96c90e..718b3295 100644 --- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThroughputAnalysis9.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment09; +package teetime.examples.experiment09pipeimpls; import java.util.List; -import teetime.framework.Stage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableProducerStage; -import teetime.framework.pipe.CommittablePipe; +import teetime.framework.Stage; +import teetime.framework.pipe.IPipeFactory; import teetime.stage.CollectorSink; import teetime.stage.NoopFilter; import teetime.stage.ObjectProducer; @@ -42,17 +42,18 @@ public class MethodCallThroughputAnalysis9 { private List<TimestampObject> timestampObjects; private Runnable runnable; - public void init() { - Stage pipeline = this.buildPipeline(); + public void init(final IPipeFactory pipeFactory) { + Stage pipeline = this.buildPipeline(pipeFactory); this.runnable = new RunnableProducerStage(pipeline); } /** + * @param pipeFactory * @param numNoopFilters * @return * @since 1.10 */ - private OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline() { + private OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline(final IPipeFactory pipeFactory) { @SuppressWarnings("unchecked") final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[this.numNoopFilters]; // create stages @@ -68,13 +69,13 @@ public class MethodCallThroughputAnalysis9 { pipeline.setFirstStage(objectProducer); pipeline.setLastStage(collectorSink); - CommittablePipe.connect(objectProducer.getOutputPort(), startTimestampFilter.getInputPort()); - CommittablePipe.connect(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort()); + pipeFactory.create(objectProducer.getOutputPort(), startTimestampFilter.getInputPort()); + pipeFactory.create(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort()); for (int i = 0; i < noopFilters.length - 1; i++) { - CommittablePipe.connect(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort()); + pipeFactory.create(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort()); } - CommittablePipe.connect(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort()); - CommittablePipe.connect(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort()); + pipeFactory.create(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort()); + pipeFactory.create(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort()); return pipeline; } diff --git a/src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java deleted file mode 100644 index 972d5608..00000000 --- a/src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java +++ /dev/null @@ -1,22 +0,0 @@ -package teetime.examples.experiment10; - -import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; -import util.test.MeasurementRepository; -import util.test.PerformanceResult; -import util.test.PerformanceTest; -import util.test.AbstractProfiledPerformanceAssertion; - -abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAssertion { - - protected PerformanceResult test01; - protected PerformanceResult test10; - - @Override - public void check() { - String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects"); - test01 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); - testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis10Test.class, "testWithManyObjects"); - test10 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); - } - -} diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java deleted file mode 100644 index 5755e5cf..00000000 --- a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -package teetime.examples.experiment10; - -import static org.junit.Assert.assertEquals; -import teetime.examples.HostName; - -class ChwHomePerformanceCheck extends AbstractPerformanceCheck { - - @Override - public String getCorrespondingPerformanceProfile() { - return HostName.CHW_HOME.toString(); - } - - @Override - public void check() { - super.check(); - - double medianSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5); - - System.out.println("meanSpeedup (10): " + medianSpeedup); - - // since 26.06.2014 (incl.) - // assertEquals(26, value10, 2.1); // +14 - // // since 04.07.2014 (incl.) - // assertEquals(26, value10, 2.1); // +0 - // since 11.08.2014 (incl.) - // assertEquals(47, value10, 2.1); // +21 - // since 31.08.2014 (incl.) - // assertEquals(51, medianSpeedup, 3.2); // +4 - // since 13.12.2014 (incl.) - // assertEquals(40, medianSpeedup, 3.2); // -11 - // since 28.12.2014 (incl.) - assertEquals(24, medianSpeedup, 3.2); // -16 - } -} diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java deleted file mode 100644 index bbb49ded..00000000 --- a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java +++ /dev/null @@ -1,31 +0,0 @@ -package teetime.examples.experiment10; - -import static org.junit.Assert.assertEquals; - -class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { - - @Override - public String getCorrespondingPerformanceProfile() { - return "ChwWork"; - } - - @Override - public void check() { - super.check(); - - double medianSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5); - - System.out.println("medianSpeedup (10): " + medianSpeedup); - - // until 25.06.2014 (incl.) - // assertEquals(14, (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); - // since 26.06.2014 (incl.) - // assertEquals(26, meanSpeedup, 2.1); // +14 - // since 04.07.2014 (incl.) - // assertEquals(26, meanSpeedup, 2.1); // +0 - // since 27.08.2014 (incl.) - // assertEquals(56, meanSpeedup, 2.1); // +30 - // since 14.10.2014 (incl.) - assertEquals(25, medianSpeedup, 3.1); // -31 - } -} diff --git a/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java b/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java deleted file mode 100644 index aac62e41..00000000 --- a/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java +++ /dev/null @@ -1,70 +0,0 @@ -/*************************************************************************** - * Copyright 2014 Kieker Project (http://kieker-monitoring.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ***************************************************************************/ -package teetime.examples.experiment10; - -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -import teetime.util.ConstructorClosure; -import teetime.util.TimestampObject; -import util.test.PerformanceTest; -import util.test.AbstractProfiledPerformanceAssertion; - -/** - * @author Christian Wulf - * - * @since 1.10 - */ -public class MethodCallThoughputTimestampAnalysis10Test extends PerformanceTest { - - @BeforeClass - public static void beforeClass() { - PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis10Test.class, new ChwWorkPerformanceCheck()); - PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis10Test.class, new ChwHomePerformanceCheck()); - }; - - @AfterClass - public static void afterClass() { - AbstractProfiledPerformanceAssertion performanceCheckProfile = PERFORMANCE_CHECK_PROFILE_REPOSITORY.get(MethodCallThoughputTimestampAnalysis10Test.class); - performanceCheckProfile.check(); - }; - - @Test - public void testWithManyObjects() { - System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS=" - + NUM_NOOP_FILTERS + "..."); - - final MethodCallThroughputAnalysis10 analysis = new MethodCallThroughputAnalysis10(); - analysis.setNumNoopFilters(NUM_NOOP_FILTERS); - analysis.setTimestampObjects(this.timestampObjects); - analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() { - @Override - public TimestampObject create() { - return new TimestampObject(); - } - }); - analysis.init(); - - this.stopWatch.start(); - try { - analysis.start(); - } finally { - this.stopWatch.end(); - } - } - -} diff --git a/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java b/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java deleted file mode 100644 index 70b476ff..00000000 --- a/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java +++ /dev/null @@ -1,103 +0,0 @@ -/*************************************************************************** - * Copyright 2014 Kieker Project (http://kieker-monitoring.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ***************************************************************************/ -package teetime.examples.experiment10; - -import java.util.List; - -import teetime.framework.OldHeadPipeline; -import teetime.framework.RunnableProducerStage; -import teetime.framework.pipe.SingleElementPipe; -import teetime.stage.CollectorSink; -import teetime.stage.NoopFilter; -import teetime.stage.ObjectProducer; -import teetime.stage.StartTimestampFilter; -import teetime.stage.StopTimestampFilter; -import teetime.util.ConstructorClosure; -import teetime.util.TimestampObject; - -/** - * @author Christian Wulf - * - * @since 1.10 - */ -public class MethodCallThroughputAnalysis10 { - - private long numInputObjects; - private ConstructorClosure<TimestampObject> inputObjectCreator; - private int numNoopFilters; - private List<TimestampObject> timestampObjects; - private Runnable runnable; - - public void init() { - this.runnable = this.buildPipeline(); - } - - /** - * @param numNoopFilters - * @since 1.10 - */ - private Runnable buildPipeline() { - @SuppressWarnings("unchecked") - final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[this.numNoopFilters]; - // create stages - final ObjectProducer<TimestampObject> objectProducer = new ObjectProducer<TimestampObject>(this.numInputObjects, this.inputObjectCreator); - final StartTimestampFilter startTimestampFilter = new StartTimestampFilter(); - for (int i = 0; i < noopFilters.length; i++) { - noopFilters[i] = new NoopFilter<TimestampObject>(); - } - final StopTimestampFilter stopTimestampFilter = new StopTimestampFilter(); - final CollectorSink<TimestampObject> collectorSink = new CollectorSink<TimestampObject>(this.timestampObjects); - - final OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> pipeline = new OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>>(); - pipeline.setFirstStage(objectProducer); - pipeline.setLastStage(collectorSink); - - SingleElementPipe.connect(objectProducer.getOutputPort(), startTimestampFilter.getInputPort()); - SingleElementPipe.connect(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort()); - for (int i = 0; i < noopFilters.length - 1; i++) { - SingleElementPipe.connect(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort()); - } - SingleElementPipe.connect(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort()); - SingleElementPipe.connect(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort()); - - return new RunnableProducerStage(pipeline); - } - - public void start() { - this.runnable.run(); - } - - public void setInput(final int numInputObjects, final ConstructorClosure<TimestampObject> inputObjectCreator) { - this.numInputObjects = numInputObjects; - this.inputObjectCreator = inputObjectCreator; - } - - public int getNumNoopFilters() { - return this.numNoopFilters; - } - - public void setNumNoopFilters(final int numNoopFilters) { - this.numNoopFilters = numNoopFilters; - } - - public List<TimestampObject> getTimestampObjects() { - return this.timestampObjects; - } - - public void setTimestampObjects(final List<TimestampObject> timestampObjects) { - this.timestampObjects = timestampObjects; - } -} -- GitLab