diff --git a/src/main/java/util/test/MeasurementRepository.java b/src/main/java/util/test/MeasurementRepository.java index d510c78520e59ae106b7ec77a6f8ca71d942e911..99843106b521d6bdc9740a356e528353aa956b5b 100644 --- a/src/main/java/util/test/MeasurementRepository.java +++ b/src/main/java/util/test/MeasurementRepository.java @@ -7,4 +7,7 @@ public class MeasurementRepository { public final Map<String, PerformanceResult> performanceResults = new HashMap<String, PerformanceResult>(); + public static final String buildTestMethodIdentifier(final Class<?> testClass, final String methodName) { + return testClass.getName() + "(" + methodName + ")"; + } } diff --git a/src/main/java/util/test/PerformanceTest.java b/src/main/java/util/test/PerformanceTest.java index d2f9e3ba8674e393a3460cf6731d70f7c785fc14..66c435b8c4e76b53ebbfd6a89750380decb05724 100644 --- a/src/main/java/util/test/PerformanceTest.java +++ b/src/main/java/util/test/PerformanceTest.java @@ -48,8 +48,11 @@ public abstract class PerformanceTest { @After public void after() { + String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(description.getTestClass(), description.getMethodName()); PerformanceResult performanceResult = StatisticsUtil.computeStatistics(this.stopWatch.getDurationInNs(), this.timestampObjects); - measurementRepository.performanceResults.put(this.description.getDisplayName(), performanceResult); + measurementRepository.performanceResults.put(testMethodIdentifier, performanceResult); + + addToRepository(performanceResult); System.out.println("Duration: " + TimeUnit.NANOSECONDS.toMillis(performanceResult.overallDurationInNs) + " ms"); System.out.println("avg duration: " + TimeUnit.NANOSECONDS.toMicros(performanceResult.avgDurInNs) + " µs"); @@ -59,4 +62,9 @@ public abstract class PerformanceTest { + TimeUnit.NANOSECONDS.toMicros(performanceResult.avgDurInNs + performanceResult.confidenceWidthInNs) + " µs]"); } + @Deprecated + private void addToRepository(final PerformanceResult performanceResult) { + measurementRepository.performanceResults.put(this.description.getDisplayName(), performanceResult); + } + } diff --git a/src/main/java/util/test/ProfiledPerformanceAssertion.java b/src/main/java/util/test/ProfiledPerformanceAssertion.java index 88f300355d0ef137aff12d6677307939e4c529a5..9e9bb48858c7404f26e5f5c1982301b12ee966a4 100644 --- a/src/main/java/util/test/ProfiledPerformanceAssertion.java +++ b/src/main/java/util/test/ProfiledPerformanceAssertion.java @@ -5,8 +5,4 @@ public abstract class ProfiledPerformanceAssertion { public abstract String getCorrespondingPerformanceProfile(); public abstract void check(); - - protected String buildTestMethodIdentifier(final Class<? extends PerformanceTest> testClass, final String methodName) { - return testClass.getName() + "(" + methodName + ")"; - } } diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java index 8f2dabdc54cf55b1d6d59fecaa763c9a994f6497..fa77b3378a9fe08ad54184a1b6b88380ea265574 100644 --- a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java @@ -2,6 +2,7 @@ package teetime.examples.experiment14; import static org.junit.Assert.assertEquals; import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; +import util.test.MeasurementRepository; import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; @@ -15,10 +16,10 @@ public class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { @Override public void check() { - PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults - .get(buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects")); - PerformanceResult test14 = PerformanceTest.measurementRepository.performanceResults - .get(buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis14Test.class, "testWithManyObjects")); + String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects"); + PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); + testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis14Test.class, "testWithManyObjects"); + PerformanceResult test14 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); double medianSpeedup = (double) test14.quantiles.get(0.5) / test01.quantiles.get(0.5);