From b03181f9053522b7d5513624dcd75fe530ca037b Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Mon, 16 Jun 2014 13:23:12 +0200 Subject: [PATCH] restructured packages --- results/overhead-findings.txt | 9 +++++++++ .../MethodCallThroughputAnalysis1.java | 5 +++++ .../MethodCallThroughputAnalysis2.java | 6 ++++++ .../MethodCallThroughputAnalysis3.java | 5 +++++ .../MethodCallThroughputAnalysis4.java | 5 +++++ .../MethodCallThroughputAnalysis5.java | 5 +++++ .../MethodCallThroughputAnalysis6.java | 5 +++++ .../MethodCallThroughputAnalysis7.java | 5 +++++ .../MethodCallThroughputAnalysis8.java | 5 +++++ .../MethodCallThroughputAnalysis9.java | 6 ++++++ .../methodcall/{ => stage}/CollectorSink.java | 3 ++- .../methodcall/{ => stage}/NoopFilter.java | 5 +++-- .../methodcall/{ => stage}/ObjectProducer.java | 3 ++- .../methodcall/{ => stage}/Pipeline.java | 18 ++++++++++++------ .../{ => stage}/StartTimestampFilter.java | 3 ++- .../{ => stage}/StopTimestampFilter.java | 3 ++- 16 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 results/overhead-findings.txt rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/CollectorSink.java (94%) rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/NoopFilter.java (88%) rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/ObjectProducer.java (96%) rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/Pipeline.java (87%) rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/StartTimestampFilter.java (93%) rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/StopTimestampFilter.java (93%) diff --git a/results/overhead-findings.txt b/results/overhead-findings.txt new file mode 100644 index 00000000..888c4d3e --- /dev/null +++ b/results/overhead-findings.txt @@ -0,0 +1,9 @@ +[increases overhead] +-for loop with list vs. array (due to new instantiation of iterator) +-for loop with super type vs. concrete type (due to less JIT optimization possibilities) +- + +[irrelevant w.r.t. overhead] +-foreach vs. index-based iteration +-iterative vs. recursive execution +- \ No newline at end of file diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java index f85dea67..e9955067 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java @@ -19,6 +19,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java index 330bda0b..fb0cf885 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java @@ -19,6 +19,12 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.Pipeline; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; import teetime.util.list.CommittableQueue; import teetime.util.list.CommittableResizableArrayQueue; diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java index 29b7a0ab..e40e3bb5 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java @@ -21,6 +21,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java index eaf0c945..f60c0838 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java @@ -21,6 +21,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java index 394e28a6..ae54e4b4 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java @@ -21,6 +21,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java index 2b74c99a..ee056d28 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java @@ -21,6 +21,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java index b9e4060e..7f865f5a 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java @@ -21,6 +21,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java index 7c8fecc8..7f458284 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java @@ -21,6 +21,11 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java index 3bb16df8..1e533252 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java +++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java @@ -19,6 +19,12 @@ import java.util.List; import java.util.concurrent.Callable; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.stage.CollectorSink; +import teetime.examples.throughput.methodcall.stage.NoopFilter; +import teetime.examples.throughput.methodcall.stage.ObjectProducer; +import teetime.examples.throughput.methodcall.stage.Pipeline; +import teetime.examples.throughput.methodcall.stage.StartTimestampFilter; +import teetime.examples.throughput.methodcall.stage.StopTimestampFilter; import teetime.framework.core.Analysis; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/CollectorSink.java b/src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java similarity index 94% rename from src/test/java/teetime/examples/throughput/methodcall/CollectorSink.java rename to src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java index 90fefc3a..77a2ef04 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/CollectorSink.java +++ b/src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.throughput.methodcall; +package teetime.examples.throughput.methodcall.stage; import java.util.List; +import teetime.examples.throughput.methodcall.ConsumerStage; import teetime.util.list.CommittableQueue; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/NoopFilter.java b/src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java similarity index 88% rename from src/test/java/teetime/examples/throughput/methodcall/NoopFilter.java rename to src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java index 17d1abba..7fdf98b2 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/NoopFilter.java +++ b/src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.throughput.methodcall; +package teetime.examples.throughput.methodcall.stage; +import teetime.examples.throughput.methodcall.ConsumerStage; import teetime.util.list.CommittableQueue; /** @@ -44,7 +45,7 @@ public class NoopFilter<T> extends ConsumerStage<T, T> { @Override protected void execute5(final T element) { - this.send(element); + this.send(element); // "send" calls the next stage and so on } } diff --git a/src/test/java/teetime/examples/throughput/methodcall/ObjectProducer.java b/src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java similarity index 96% rename from src/test/java/teetime/examples/throughput/methodcall/ObjectProducer.java rename to src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java index deeb0df7..d6093bbe 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/ObjectProducer.java +++ b/src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.throughput.methodcall; +package teetime.examples.throughput.methodcall.stage; import java.util.concurrent.Callable; +import teetime.examples.throughput.methodcall.ProducerStage; import teetime.util.list.CommittableQueue; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/Pipeline.java b/src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java similarity index 87% rename from src/test/java/teetime/examples/throughput/methodcall/Pipeline.java rename to src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java index 82dfe6bf..23c63395 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/Pipeline.java +++ b/src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java @@ -1,9 +1,15 @@ -package teetime.examples.throughput.methodcall; +package teetime.examples.throughput.methodcall.stage; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import teetime.examples.throughput.methodcall.InputPort; +import teetime.examples.throughput.methodcall.OnDisableListener; +import teetime.examples.throughput.methodcall.OutputPort; +import teetime.examples.throughput.methodcall.SchedulingInformation; +import teetime.examples.throughput.methodcall.Stage; +import teetime.examples.throughput.methodcall.StageWithPort; import teetime.util.list.CommittableQueue; public class Pipeline<I, O> implements StageWithPort<I, O>, OnDisableListener { @@ -22,19 +28,19 @@ public class Pipeline<I, O> implements StageWithPort<I, O>, OnDisableListener { private boolean reschedulable; - void setFirstStage(final StageWithPort<I, ?> stage) { + public void setFirstStage(final StageWithPort<I, ?> stage) { this.firstStage = stage; } - void addIntermediateStages(final StageWithPort... stages) { + public void addIntermediateStages(final StageWithPort... stages) { this.intermediateStages.addAll(Arrays.asList(stages)); } - void addIntermediateStage(final StageWithPort stage) { + public void addIntermediateStage(final StageWithPort stage) { this.intermediateStages.add(stage); } - void setLastStage(final StageWithPort<?, O> stage) { + public void setLastStage(final StageWithPort<?, O> stage) { this.lastStage = stage; } @@ -66,7 +72,7 @@ public class Pipeline<I, O> implements StageWithPort<I, O>, OnDisableListener { this.setReschedulable(this.stages[0].isReschedulable()); } - void onStart() { + public void onStart() { // Pipe pipe = new Pipe(); // this.outputPort.pipe = pipe; // this.firstStage.getInputPort().pipe = pipe; diff --git a/src/test/java/teetime/examples/throughput/methodcall/StartTimestampFilter.java b/src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java similarity index 93% rename from src/test/java/teetime/examples/throughput/methodcall/StartTimestampFilter.java rename to src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java index d4d6d5a7..fdcc6d44 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/StartTimestampFilter.java +++ b/src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.throughput.methodcall; +package teetime.examples.throughput.methodcall.stage; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.ConsumerStage; import teetime.util.list.CommittableQueue; /** diff --git a/src/test/java/teetime/examples/throughput/methodcall/StopTimestampFilter.java b/src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java similarity index 93% rename from src/test/java/teetime/examples/throughput/methodcall/StopTimestampFilter.java rename to src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java index 78c333cd..0dfd5adc 100644 --- a/src/test/java/teetime/examples/throughput/methodcall/StopTimestampFilter.java +++ b/src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -package teetime.examples.throughput.methodcall; +package teetime.examples.throughput.methodcall.stage; import teetime.examples.throughput.TimestampObject; +import teetime.examples.throughput.methodcall.ConsumerStage; import teetime.util.list.CommittableQueue; /** -- GitLab