diff --git a/src/main/java/teetime/framework/AbstractInterThreadPipe.java b/src/main/java/teetime/framework/AbstractInterThreadPipe.java index 9821a41bbe6a66f3284a65f95ad0cc88c3917581..58d83fe8c74dbcd20507fccd77e2767774b9961a 100644 --- a/src/main/java/teetime/framework/AbstractInterThreadPipe.java +++ b/src/main/java/teetime/framework/AbstractInterThreadPipe.java @@ -23,6 +23,9 @@ public abstract class AbstractInterThreadPipe extends AbstractPipe { this.signalQueue.offer(signal); Thread owningThread = cachedTargetStage.getOwningThread(); + if (owningThread == null) { + System.err.println("cachedTargetStage: " + cachedTargetStage); + } if (null != owningThread && isThreadWaiting(owningThread)) { // FIXME remove the null check for performance owningThread.interrupt(); } diff --git a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java index 77d7dbaa3727a06e8a97b4cac189af19fa3b216f..faf67e8dfc91d00cbdf0e7af485033c4e22e8ca2 100644 --- a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java @@ -63,9 +63,12 @@ public class ChwHomeComparisonMethodcallWithPorts extends AbstractProfiledPerfor // assertEquals(78, value17, 4.1); // +3 // since 13.12.2014 (incl.) - assertEquals(40, value15, 4.1); // -28 + // assertEquals(40, value15, 4.1); // -28 // assertEquals(43, value17, 4.1); // -35 + // since 28.12.2014 (incl.) + assertEquals(30, value15, 4.1); // -10 + // check speedup assertEquals(2, (double) test19a.overallDurationInNs / test19b.overallDurationInNs, 0.3); assertEquals(2.5, (double) test19a.overallDurationInNs / test19c.overallDurationInNs, 0.3); diff --git a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java index e9652516668a8b7ba9d5e05d2bfcc24749abf52f..44b9227c3f2a3cd7c900a745709e56cf8b81e4dd 100644 --- a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java @@ -9,7 +9,6 @@ import org.junit.runners.Suite.SuiteClasses; import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; import teetime.examples.experiment09pipeimpls.MethodCallThoughputTimestampAnalysis9Test; import teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test; -import teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test; import teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test; import teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test; import teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test; @@ -21,7 +20,6 @@ import util.test.PerformanceCheckProfileRepository; MethodCallThoughputTimestampAnalysis1Test.class, MethodCallThoughputTimestampAnalysis9Test.class, MethodCallThoughputTimestampAnalysis11Test.class, - MethodCallThoughputTimestampAnalysis14Test.class, MethodCallThoughputTimestampAnalysis15Test.class, MethodCallThoughputTimestampAnalysis16Test.class, MethodCallThoughputTimestampAnalysis19Test.class, diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java index 783af21b8663262eeb670fe124c226bbfe367a77..f821b423ef9c2fdfc0faf722494d6393718621ab 100644 --- a/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java @@ -11,6 +11,7 @@ abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAsser protected PerformanceResult test01; protected PerformanceResult test09CommittablePipes; protected PerformanceResult test09SingleElementPipes; + protected PerformanceResult test09OrderedGrowableArrayPipes; @Override public void check() { @@ -22,6 +23,9 @@ abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAsser testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testSingleElementPipes"); test09SingleElementPipes = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); + + testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testOrderedGrowableArrayPipes"); + test09OrderedGrowableArrayPipes = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); } } diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java index 5b6cd1cb7b5bc30d76893f763b793696bc22e921..369326fc8cdf85b8b1d147b0210d03ff72e06be6 100644 --- a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java @@ -16,6 +16,7 @@ class ChwHomePerformanceCheck extends AbstractPerformanceCheck { checkCommittablePipes(); checkSingleElementPipes(); + checkOrderedGrowableArrayPipes(); } private void checkCommittablePipes() { @@ -36,9 +37,7 @@ class ChwHomePerformanceCheck extends AbstractPerformanceCheck { // since 04.11.2014 (incl.) // assertEquals(71, medianSpeedup, 2.1); // +27 // since 05.12.2014 (incl.) - // assertEquals(45, medianSpeedup, 2.1); // -26 - // since 28.12.2014 (incl.) - assertEquals(56, medianSpeedup, 2.1); // +11 + assertEquals(45, medianSpeedup, 2.1); // -26 (45-56) } private void checkSingleElementPipes() { @@ -60,4 +59,29 @@ class ChwHomePerformanceCheck extends AbstractPerformanceCheck { assertEquals(24, medianSpeedup, 3.2); // -16 } + private void checkOrderedGrowableArrayPipes() { + double medianSpeedup = (double) test09OrderedGrowableArrayPipes.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (09 ordered growable array pipes): " + 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 + // since 04.11.2014 (incl.) + // assertEquals(84, medianSpeedup, 2.1); // +22 + // since 05.12.2014 (incl.) + // assertEquals(75, medianSpeedup, 2.1); // -9 + // since 13.12.2014 (incl.) + // assertEquals(44, medianSpeedup, 2.1); // -31 + // since 28.12.2014 (incl.) + assertEquals(46, medianSpeedup, 2.1); // +2 + } + } diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java index f29535c8da8b77cda0e0a86716a0339ed0da60cd..a84f8fab6b438d71f81f72937ae00872215607f2 100644 --- a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java @@ -15,6 +15,7 @@ class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { checkCommittablePipes(); checkSingleElementPipes(); + checkOrderedGrowableArrayPipes(); } private void checkCommittablePipes() { @@ -52,4 +53,24 @@ class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { // since 14.10.2014 (incl.) assertEquals(25, medianSpeedup, 3.1); // -31 } + + private void checkOrderedGrowableArrayPipes() { + double medianSpeedup = (double) test09OrderedGrowableArrayPipes.quantiles.get(0.5) / test01.quantiles.get(0.5); + + System.out.println("medianSpeedup (09 ordered growable array pipes): " + 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(81, medianSpeedup, 5.1); // -21 + // since 19.12.2014 (incl.) + assertEquals(56, medianSpeedup, 5.1); // -25 + } + } diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java index f51b30424a75df3c79bd268b9ed610af1de24831..b4f1bcbc237021798b7ac326038cfeed3ababc55 100644 --- a/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java +++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java @@ -21,6 +21,7 @@ import org.junit.Test; import teetime.framework.pipe.CommittablePipeFactory; import teetime.framework.pipe.IPipeFactory; +import teetime.framework.pipe.OrderedGrowableArrayPipeFactory; import teetime.framework.pipe.SingleElementPipeFactory; import teetime.util.ConstructorClosure; import teetime.util.TimestampObject; @@ -58,6 +59,12 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest { testWithManyObjects(pipeFactory); } + @Test + public void testOrderedGrowableArrayPipes() throws Exception { + IPipeFactory pipeFactory = new OrderedGrowableArrayPipeFactory(); + testWithManyObjects(pipeFactory); + } + private void testWithManyObjects(final IPipeFactory pipeFactory) { System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS=" + NUM_NOOP_FILTERS + "..."); diff --git a/src/performancetest/java/teetime/examples/experiment14/AbstractPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/AbstractPerformanceCheck.java deleted file mode 100644 index b3dfc404714d86910880d8556c2e1596dc670b90..0000000000000000000000000000000000000000 --- a/src/performancetest/java/teetime/examples/experiment14/AbstractPerformanceCheck.java +++ /dev/null @@ -1,22 +0,0 @@ -package teetime.examples.experiment14; - -import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test; -import util.test.MeasurementRepository; -import util.test.PerformanceResult; -import util.test.PerformanceTest; -import util.test.AbstractProfiledPerformanceAssertion; - -abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAssertion { - - protected PerformanceResult test01; - protected PerformanceResult test14; - - @Override - public void check() { - String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects"); - test01 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); - testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis14Test.class, "testWithManyObjects"); - test14 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier); - } - -} diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java deleted file mode 100644 index 4c89ea59b83368762ed1806ba5c80d6ea171f3b7..0000000000000000000000000000000000000000 --- a/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java +++ /dev/null @@ -1,40 +0,0 @@ -package teetime.examples.experiment14; - -import static org.junit.Assert.assertEquals; -import teetime.examples.HostName; - -class ChwHomePerformanceCheck extends AbstractPerformanceCheck { - - @Override - public String getCorrespondingPerformanceProfile() { - return HostName.CHW_HOME.toString(); - } - - @Override - public void check() { - super.check(); - - 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 - // since 04.11.2014 (incl.) - // assertEquals(84, medianSpeedup, 2.1); // +22 - // since 05.12.2014 (incl.) - // assertEquals(75, medianSpeedup, 2.1); // -9 - // since 13.12.2014 (incl.) - // assertEquals(44, medianSpeedup, 2.1); // -31 - // since 28.12.2014 (incl.) - assertEquals(46, medianSpeedup, 2.1); // +2 - } -} diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java deleted file mode 100644 index b2d4deed66518910d7475f1dea702e425c491dbd..0000000000000000000000000000000000000000 --- a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java +++ /dev/null @@ -1,33 +0,0 @@ -package teetime.examples.experiment14; - -import static org.junit.Assert.assertEquals; - -class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { - - @Override - public String getCorrespondingPerformanceProfile() { - return "ChwWork"; - } - - @Override - public void check() { - super.check(); - - 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(81, medianSpeedup, 5.1); // -21 - // since 19.12.2014 (incl.) - assertEquals(56, medianSpeedup, 5.1); // -25 - } -} diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java deleted file mode 100644 index 75e7df4e331481e06dee39bddc311e2532488fb8..0000000000000000000000000000000000000000 --- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java +++ /dev/null @@ -1,70 +0,0 @@ -/*************************************************************************** - * Copyright 2014 Kieker Project (http://kieker-monitoring.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ***************************************************************************/ -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.test.PerformanceTest; -import util.test.AbstractProfiledPerformanceAssertion; - -/** - * @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() { - AbstractProfiledPerformanceAssertion 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=" - + NUM_NOOP_FILTERS + "..."); - - final MethodCallThroughputAnalysis14 analysis = new MethodCallThroughputAnalysis14(); - analysis.setNumNoopFilters(NUM_NOOP_FILTERS); - analysis.setTimestampObjects(this.timestampObjects); - analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() { - @Override - public TimestampObject create() { - return new TimestampObject(); - } - }); - analysis.init(); - - this.stopWatch.start(); - try { - analysis.start(); - } finally { - this.stopWatch.end(); - } - } - -} diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java deleted file mode 100644 index 2f871761f6fbe15881927fdf22359e3ef25fc0a6..0000000000000000000000000000000000000000 --- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java +++ /dev/null @@ -1,112 +0,0 @@ -/*************************************************************************** - * Copyright 2014 Kieker Project (http://kieker-monitoring.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ***************************************************************************/ -package teetime.examples.experiment14; - -import java.util.List; - -import teetime.framework.Stage; -import teetime.framework.OldHeadPipeline; -import teetime.framework.RunnableProducerStage; -import teetime.framework.pipe.IPipeFactory; -import teetime.framework.pipe.PipeFactoryRegistry; -import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; -import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; -import teetime.stage.CollectorSink; -import teetime.stage.NoopFilter; -import teetime.stage.ObjectProducer; -import teetime.stage.StartTimestampFilter; -import teetime.stage.StopTimestampFilter; -import teetime.util.ConstructorClosure; -import teetime.util.TimestampObject; - -/** - * @author Christian Wulf - * - * @since 1.10 - */ -public class MethodCallThroughputAnalysis14 { - - private long numInputObjects; - private ConstructorClosure<TimestampObject> inputObjectCreator; - private int numNoopFilters; - private List<TimestampObject> timestampObjects; - private Runnable runnable; - private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; - - public void init() { - Stage pipeline = this.buildPipeline(); - this.runnable = new RunnableProducerStage(pipeline); - } - - /** - * @param numNoopFilters - * @return - * @since 1.10 - */ - private OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline() { - @SuppressWarnings("unchecked") - final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[this.numNoopFilters]; - // create stages - final ObjectProducer<TimestampObject> objectProducer = new ObjectProducer<TimestampObject>(this.numInputObjects, this.inputObjectCreator); - final StartTimestampFilter startTimestampFilter = new StartTimestampFilter(); - for (int i = 0; i < noopFilters.length; i++) { - noopFilters[i] = new NoopFilter<TimestampObject>(); - } - final StopTimestampFilter stopTimestampFilter = new StopTimestampFilter(); - final CollectorSink<TimestampObject> collectorSink = new CollectorSink<TimestampObject>(this.timestampObjects); - - final OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> pipeline = new OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>>(); - pipeline.setFirstStage(objectProducer); - pipeline.setLastStage(collectorSink); - - IPipeFactory factory = this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.QUEUE_BASED, true); - - factory.create(objectProducer.getOutputPort(), startTimestampFilter.getInputPort()); - factory.create(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort()); - for (int i = 0; i < noopFilters.length - 1; i++) { - factory.create(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort()); - } - factory.create(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort()); - factory.create(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort()); - - return pipeline; - } - - public void start() { - this.runnable.run(); - } - - public void setInput(final int numInputObjects, final ConstructorClosure<TimestampObject> inputObjectCreator) { - this.numInputObjects = numInputObjects; - this.inputObjectCreator = inputObjectCreator; - } - - public int getNumNoopFilters() { - return this.numNoopFilters; - } - - public void setNumNoopFilters(final int numNoopFilters) { - this.numNoopFilters = numNoopFilters; - } - - public List<TimestampObject> getTimestampObjects() { - return this.timestampObjects; - } - - public void setTimestampObjects(final List<TimestampObject> timestampObjects) { - this.timestampObjects = timestampObjects; - } -}