From 898f51055d80677d25e43966df58970e5401ac62 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 0000000..888c4d3 --- /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 f85dea6..e995506 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 330bda0..fb0cf88 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 29b7a0a..e40e3bb 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 eaf0c94..f60c083 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 394e28a..ae54e4b 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 2b74c99..ee056d2 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 b9e4060..7f865f5 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 7c8fecc..7f45828 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 3bb16df..1e53325 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 90fefc3..77a2ef0 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 17d1abb..7fdf98b 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 deeb0df..d6093bb 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 82dfe6b..23c6339 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 d4d6d5a..fdcc6d4 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 78c333c..0dfd5ad 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