Skip to content
Snippets Groups Projects
Commit 2e1c899f authored by Christian Wulf's avatar Christian Wulf
Browse files

added performance test profiles

parent e780f2d3
No related branches found
No related tags found
No related merge requests found
Showing
with 164 additions and 103 deletions
......@@ -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());
......
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();
}
}
......@@ -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());
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
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";
}
}
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";
}
}
......@@ -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) {
......
......@@ -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
......
......@@ -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
......
......@@ -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;
......
......@@ -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
......
......@@ -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
......
......@@ -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;
......
......@@ -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
......
......@@ -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;
......
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment