diff --git a/src/main/java/util/PerformanceTest.java b/src/main/java/util/PerformanceTest.java index cc672d509e4890a617b19fd3a71ede5592012a49..24bf696601552e3dd4ef5da201ec3416b9eb0cf0 100644 --- a/src/main/java/util/PerformanceTest.java +++ b/src/main/java/util/PerformanceTest.java @@ -6,7 +6,6 @@ import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Rule; import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; @@ -17,6 +16,7 @@ import teetime.util.TimestampObject; public abstract class PerformanceTest { + protected static final PerformanceCheckProfileRepository PERFORMANCE_CHECK_PROFILE_REPOSITORY = PerformanceCheckProfileRepository.INSTANCE; protected static final int NUM_OBJECTS_TO_CREATE = 1000000; protected static final int NUM_NOOP_FILTERS = 800; @@ -27,8 +27,7 @@ public abstract class PerformanceTest { protected StopWatch stopWatch; protected List<TimestampObject> timestampObjects; - @BeforeClass - public static void beforeClass() { + static { System.setProperty("logback.configurationFile", "src/test/resources/logback-test.groovy"); } diff --git a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java index 8c4ab937fe73bf651c0b9c9f5986601db7b4f102..33c6aed061d2b37ea11504d71ef5462030e4c216 100644 --- a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java @@ -27,12 +27,12 @@ public class ChwHomeComparisonMethodcallWithPorts implements PerformanceCheckPro .get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); PerformanceResult test9 = performanceResults .get("testWithManyObjects(teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)"); - PerformanceResult test10 = performanceResults - .get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); + // PerformanceResult test10 = performanceResults + // .get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); PerformanceResult test11 = performanceResults .get("testWithManyObjects(teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)"); - PerformanceResult test14 = performanceResults - .get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); + // PerformanceResult test14 = performanceResults + // .get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); PerformanceResult test15 = performanceResults .get("testWithManyObjects(teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)"); PerformanceResult test16a = performanceResults @@ -50,8 +50,8 @@ public class ChwHomeComparisonMethodcallWithPorts implements PerformanceCheckPro PerformanceResult test19c = performanceResults .get("testWithManyObjectsAnd4Threads(teetime.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 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); @@ -59,8 +59,8 @@ public class ChwHomeComparisonMethodcallWithPorts implements PerformanceCheckPro System.out.println("value9: " + value9); System.out.println("value11: " + value11); - System.out.println("value10: " + value10); - System.out.println("value14: " + value14); + // System.out.println("value10: " + value10); + // System.out.println("value14: " + value14); System.out.println("value15: " + value15); System.out.println("value17: " + value17); @@ -99,8 +99,8 @@ public class ChwHomeComparisonMethodcallWithPorts implements PerformanceCheckPro // since 31.08.2014 (incl.) assertEquals(44, value9, 2.1); // ?? assertEquals(43, value11, 4.1); // ?? - assertEquals(51, value10, 2.1); // ?? - assertEquals(62, value14, 5.1); // ?? + // assertEquals(51, value10, 2.1); // ?? + // assertEquals(62, value14, 5.1); // ?? assertEquals(68, value15, 4.1); // ?? assertEquals(75, value17, 4.1); // ?? diff --git a/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java index 7e2bf8468ab9dde7b7c16a80dbbf93fa7d6ea611..241b4019d872ac59ea535324269a09c50d363337 100644 --- a/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java @@ -27,12 +27,12 @@ public class ChwWorkComparisonMethodcallWithPorts implements PerformanceCheckPro .get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); PerformanceResult test9 = performanceResults .get("testWithManyObjects(teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)"); - PerformanceResult test10 = performanceResults - .get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); + // PerformanceResult test10 = performanceResults + // .get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); PerformanceResult test11 = performanceResults .get("testWithManyObjects(teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)"); - PerformanceResult test14 = performanceResults - .get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); + // PerformanceResult test14 = performanceResults + // .get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); PerformanceResult test15 = performanceResults .get("testWithManyObjects(teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)"); PerformanceResult test16a = performanceResults @@ -50,15 +50,15 @@ public class ChwWorkComparisonMethodcallWithPorts implements PerformanceCheckPro PerformanceResult test19c = performanceResults .get("testWithManyObjectsAnd4Threads(teetime.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 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("value14: " + value14); + // System.out.println("value10: " + value10); System.out.println("value11: " + value11); System.out.println("value9: " + value9); System.out.println("value15: " + value15); @@ -89,8 +89,15 @@ public class ChwWorkComparisonMethodcallWithPorts implements PerformanceCheckPro // assertEquals(53, value17, 4.1); // +0 // since 27.08.2014 (incl.) - assertEquals(102, value14, 5.1); // +16 - assertEquals(56, value10, 2.1); // +30 + // assertEquals(102, value14, 5.1); // +16 + // assertEquals(56, value10, 2.1); // +30 + // assertEquals(64, value11, 4.1); // +15 + // assertEquals(77, value9, 2.1); // +35 + // assertEquals(44, value15, 4.1); // +0 + // assertEquals(53, value17, 4.1); // +0 + + // since 14.10.2014 (incl.) + // assertEquals(25, value10, 2.1); // -26 assertEquals(64, value11, 4.1); // +15 assertEquals(77, value9, 2.1); // +35 assertEquals(44, value15, 4.1); // +0 diff --git a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java index 2d9876f47df99c14d14619eb079c825d393a6586..0d59913581c3839942cf2f4693b37f367fddcb5a 100644 --- a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java @@ -6,6 +6,7 @@ import org.junit.runner.RunWith; 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.experiment11.MethodCallThoughputTimestampAnalysis11Test; @@ -19,7 +20,7 @@ import util.PerformanceCheckProfileRepository; @RunWith(Suite.class) @SuiteClasses({ - // MethodCallThoughputTimestampAnalysis1Test.class, + MethodCallThoughputTimestampAnalysis1Test.class, MethodCallThoughputTimestampAnalysis9Test.class, MethodCallThoughputTimestampAnalysis10Test.class, MethodCallThoughputTimestampAnalysis11Test.class, diff --git a/src/performancetest/java/teetime/examples/experiment01/MethodCallThroughputAnalysis1.java b/src/performancetest/java/teetime/examples/experiment01/MethodCallThroughputAnalysis1.java index cde42bd77e231c073f8c0042bda1510c2f35774e..3f494dee35f14d499578ab4e895fbc04541e71c7 100644 --- a/src/performancetest/java/teetime/examples/experiment01/MethodCallThroughputAnalysis1.java +++ b/src/performancetest/java/teetime/examples/experiment01/MethodCallThroughputAnalysis1.java @@ -17,6 +17,11 @@ package teetime.examples.experiment01; import java.util.List; +import teetime.examples.experiment01.legacystage.LegacyCollectorSink; +import teetime.examples.experiment01.legacystage.LegacyNoopFilter; +import teetime.examples.experiment01.legacystage.LegacyObjectProducer; +import teetime.examples.experiment01.legacystage.LegacyStartTimestampFilter; +import teetime.examples.experiment01.legacystage.LegacyStopTimestampFilter; import teetime.util.ConstructorClosure; import teetime.util.TimestampObject; diff --git a/src/performancetest/java/teetime/examples/experiment01/LegacyCollectorSink.java b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyCollectorSink.java similarity index 94% rename from src/performancetest/java/teetime/examples/experiment01/LegacyCollectorSink.java rename to src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyCollectorSink.java index 1f24ecf0208813d57e8b68efed479ccd17a32e27..50282c803115c2721e5f4fbd00cfa55e5947f19d 100644 --- a/src/performancetest/java/teetime/examples/experiment01/LegacyCollectorSink.java +++ b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyCollectorSink.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment01; +package teetime.examples.experiment01.legacystage; import java.util.List; @@ -46,7 +46,7 @@ public class LegacyCollectorSink<T> { System.out.println("size: " + this.elements.size()); } - protected Object execute(final T element) { + public Object execute(final T element) { this.elements.add(element); if ((this.elements.size() % this.threshold) == 0) { diff --git a/src/performancetest/java/teetime/examples/experiment01/LegacyNoopFilter.java b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyNoopFilter.java similarity index 91% rename from src/performancetest/java/teetime/examples/experiment01/LegacyNoopFilter.java rename to src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyNoopFilter.java index bc43446d19a74443febadedf44b48bd7ff1bf4ac..c5247c212ed954a9ff7d7740f6dae74b2fd5c568 100644 --- a/src/performancetest/java/teetime/examples/experiment01/LegacyNoopFilter.java +++ b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyNoopFilter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment01; +package teetime.examples.experiment01.legacystage; /** * @author Christian Wulf @@ -22,7 +22,7 @@ package teetime.examples.experiment01; */ public class LegacyNoopFilter<T> { - protected T execute(final T element) { + public T execute(final T element) { return element; } diff --git a/src/performancetest/java/teetime/examples/experiment01/LegacyObjectProducer.java b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyObjectProducer.java similarity index 96% rename from src/performancetest/java/teetime/examples/experiment01/LegacyObjectProducer.java rename to src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyObjectProducer.java index 4c87ce8f7e54ec4c41160ff13f3cf96a3e8bd2d1..16b93fbf34871e3742b35df32083a17a350e5734 100644 --- a/src/performancetest/java/teetime/examples/experiment01/LegacyObjectProducer.java +++ b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyObjectProducer.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment01; +package teetime.examples.experiment01.legacystage; import teetime.util.ConstructorClosure; @@ -51,7 +51,7 @@ public class LegacyObjectProducer<T> { this.inputObjectCreator = inputObjectCreator; } - protected T execute() { + public T execute() { if (this.numInputObjects == 0) { return null; } diff --git a/src/performancetest/java/teetime/examples/experiment01/LegacyStartTimestampFilter.java b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyStartTimestampFilter.java similarity index 89% rename from src/performancetest/java/teetime/examples/experiment01/LegacyStartTimestampFilter.java rename to src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyStartTimestampFilter.java index 4a38bce28ccf8b5b92b4f5466ba0d30f5c3fe6ff..f2d119b9edc3cfb1a260b24cd20a15066cda0298 100644 --- a/src/performancetest/java/teetime/examples/experiment01/LegacyStartTimestampFilter.java +++ b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyStartTimestampFilter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment01; +package teetime.examples.experiment01.legacystage; import teetime.util.TimestampObject; @@ -24,7 +24,7 @@ import teetime.util.TimestampObject; */ public class LegacyStartTimestampFilter { - protected TimestampObject execute(final TimestampObject element) { + public TimestampObject execute(final TimestampObject element) { element.setStartTimestamp(System.nanoTime()); return element; } diff --git a/src/performancetest/java/teetime/examples/experiment01/LegacyStopTimestampFilter.java b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyStopTimestampFilter.java similarity index 89% rename from src/performancetest/java/teetime/examples/experiment01/LegacyStopTimestampFilter.java rename to src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyStopTimestampFilter.java index 6a867a3694d852fe7860072c79a12ee1168ac472..1f77d38a4a216a053a2ee1c0c38d549ac5b54a16 100644 --- a/src/performancetest/java/teetime/examples/experiment01/LegacyStopTimestampFilter.java +++ b/src/performancetest/java/teetime/examples/experiment01/legacystage/LegacyStopTimestampFilter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.experiment01; +package teetime.examples.experiment01.legacystage; import teetime.util.TimestampObject; @@ -24,7 +24,7 @@ import teetime.util.TimestampObject; */ public class LegacyStopTimestampFilter { - protected TimestampObject execute(final TimestampObject element) { + public TimestampObject execute(final TimestampObject element) { element.setStopTimestamp(System.nanoTime()); return element; } diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java new file mode 100644 index 0000000000000000000000000000000000000000..50b7485823078c62aa8f32249fe1c3897175e2b3 --- /dev/null +++ b/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java @@ -0,0 +1,35 @@ +package teetime.examples.experiment10; + +import static org.junit.Assert.assertEquals; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwHomePerformanceCheck implements PerformanceCheckProfile { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwHome"; + } + + @Override + public void check() { + PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); + PerformanceResult test10 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); + + double meanSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("meanSpeedup (10): " + meanSpeedup); + + // 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, meanSpeedup, 2.1); + } +} diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java new file mode 100644 index 0000000000000000000000000000000000000000..27a03972cf00b0d6ad9a11f1c42105d7dda68b27 --- /dev/null +++ b/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java @@ -0,0 +1,37 @@ +package teetime.examples.experiment10; + +import static org.junit.Assert.assertEquals; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwWorkPerformanceCheck implements PerformanceCheckProfile { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwWork"; + } + + @Override + public void check() { + PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); + PerformanceResult test10 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)"); + + 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(56, medianSpeedup, 2.1); // +0 + } +} diff --git a/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java b/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java index d8b872035a26c2dd77b0a45dda3167536e8684c5..eea715af68d8e196e1b0f41eb99bbf42f7601d5e 100644 --- a/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java +++ b/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java @@ -15,19 +15,34 @@ ***************************************************************************/ 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.PerformanceCheckProfile; import util.PerformanceTest; /** * @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() { + PerformanceCheckProfile 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=" diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java new file mode 100644 index 0000000000000000000000000000000000000000..562e6e4fda1435cde228f1d5a043ff3fba6e5ab3 --- /dev/null +++ b/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java @@ -0,0 +1,37 @@ +package teetime.examples.experiment14; + +import static org.junit.Assert.assertEquals; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwHomePerformanceCheck implements PerformanceCheckProfile { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwHome"; + } + + @Override + public void check() { + PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); + PerformanceResult test14 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); + + double medianSpeedup = (double) test14.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (14): " + medianSpeedup); + + // until 25.06.2014 (incl.) + // assertEquals(60, (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // since 26.06.2014 (incl.) + // assertEquals(76, medianSpeedup, 5.1); // +16 + // since 04.07.2014 (incl.) + // assertEquals(86, medianSpeedup, 5.1); // +16 + // since 11.08.2014 (incl.) + // assertEquals(103, medianSpeedup, 5.1); // +17 + // since 31.08.2014 (incl.) + assertEquals(62, medianSpeedup, 2.1); // -41 + } +} diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java new file mode 100644 index 0000000000000000000000000000000000000000..88f4e710c0fb5aa2573847719d25be2558ed2156 --- /dev/null +++ b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java @@ -0,0 +1,37 @@ +package teetime.examples.experiment14; + +import static org.junit.Assert.assertEquals; +import util.PerformanceCheckProfile; +import util.PerformanceResult; +import util.PerformanceTest; + +public class ChwWorkPerformanceCheck implements PerformanceCheckProfile { + + @Override + public String getCorrespondingPerformanceProfile() { + return "ChwWork"; + } + + @Override + public void check() { + PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"); + PerformanceResult test14 = PerformanceTest.measurementRepository.performanceResults + .get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)"); + + double medianSpeedup = (double) test14.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (14): " + medianSpeedup); + + // until 25.06.2014 (incl.) + // assertEquals(60, (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); + // since 26.06.2014 (incl.) + // assertEquals(76, medianSpeedup, 5.1); // +16 + // since 04.07.2014 (incl.) + // assertEquals(86, medianSpeedup, 5.1); // +16 + // since 27.08.2014 (incl.) + // assertEquals(102, medianSpeedup, 5.1); // +16 + // since 14.10.2014 (incl.) + assertEquals(53, medianSpeedup, 5.1); // -49 + } +} diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java index 1f87c070e9f6ee4434abdf91d34c8d0c385c69b2..fe500b4cb0f4ba880ecadb336649251ce80731cd 100644 --- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java +++ b/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java @@ -15,19 +15,34 @@ ***************************************************************************/ package teetime.examples.experiment14; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.Test; import teetime.util.ConstructorClosure; import teetime.util.TimestampObject; +import util.PerformanceCheckProfile; import util.PerformanceTest; /** * @author Christian Wulf - * + * * @since 1.10 */ public class MethodCallThoughputTimestampAnalysis14Test extends PerformanceTest { + @BeforeClass + public static void beforeClass() { + PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis14Test.class, new ChwWorkPerformanceCheck()); + PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis14Test.class, new ChwHomePerformanceCheck()); + }; + + @AfterClass + public static void afterClass() { + PerformanceCheckProfile performanceCheckProfile = PERFORMANCE_CHECK_PROFILE_REPOSITORY.get(MethodCallThoughputTimestampAnalysis14Test.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="