From 029dc624284e7629c85afb920455cc2afd06f618 Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Fri, 27 Jun 2014 15:11:48 +0200 Subject: [PATCH] added dur from beginning of cache --- conf/logging.properties | 4 ++-- .../java/kieker/analysis/stage/CacheFilter.java | 7 +++++++ .../framework/core/ConsumerStage.java | 5 ++++- .../variant/methodcallWithPorts/stage/Cache.java | 6 ++++++ .../methodcallWithPorts/stage/CountingFilter.java | 1 + .../methodcallWithPorts/stage/ThroughputFilter.java | 13 +++++++------ .../stage/basic/merger/Merger.java | 4 +++- .../TraceReconstructionAnalysis.java | 9 +-------- 8 files changed, 31 insertions(+), 18 deletions(-) diff --git a/conf/logging.properties b/conf/logging.properties index 7a943c39..3e86eac8 100644 --- a/conf/logging.properties +++ b/conf/logging.properties @@ -1,7 +1,7 @@ .handlers = java.util.logging.ConsoleHandler -.level= ALL +.level = ALL -java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.level = WARNING #java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.SimpleFormatter.format=[%1$tF %1$tr] %4$s: %5$s (%2$s)%n diff --git a/src/main/java/kieker/analysis/stage/CacheFilter.java b/src/main/java/kieker/analysis/stage/CacheFilter.java index 9d9d94b1..9aaac112 100644 --- a/src/main/java/kieker/analysis/stage/CacheFilter.java +++ b/src/main/java/kieker/analysis/stage/CacheFilter.java @@ -17,6 +17,9 @@ package kieker.analysis.stage; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; + +import teetime.util.StopWatch; import kieker.analysis.IProjectContext; import kieker.analysis.plugin.annotation.InputPort; @@ -45,9 +48,13 @@ public class CacheFilter extends AbstractFilterPlugin { @Override public void terminate(final boolean error) { + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); for (final Object data : this.cache) { super.deliver(EmptyPassOnFilter.OUTPUT_PORT_NAME, data); } + stopWatch.end(); + System.out.println("dur: " + TimeUnit.NANOSECONDS.toMillis(stopWatch.getDurationInNs()) + " ms"); super.terminate(error); } diff --git a/src/main/java/teetime/variant/methodcallWithPorts/framework/core/ConsumerStage.java b/src/main/java/teetime/variant/methodcallWithPorts/framework/core/ConsumerStage.java index 940fefdb..331e4206 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/framework/core/ConsumerStage.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/framework/core/ConsumerStage.java @@ -20,7 +20,10 @@ public abstract class ConsumerStage<I, O> extends AbstractStage<I, O> { @Override public void executeWithPorts() { - this.logger.debug("Executing stage..."); + // if (this.logger.isDebugEnabled()) { + // this.logger.debug("Executing stage..."); + // } + I element = this.getInputPort().receive(); this.setReschedulable(this.getInputPort().getPipe().size() > 0); diff --git a/src/main/java/teetime/variant/methodcallWithPorts/stage/Cache.java b/src/main/java/teetime/variant/methodcallWithPorts/stage/Cache.java index 460f08f7..44213e29 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/stage/Cache.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/stage/Cache.java @@ -2,7 +2,9 @@ package teetime.variant.methodcallWithPorts.stage; import java.util.LinkedList; import java.util.List; +import java.util.concurrent.TimeUnit; +import teetime.util.StopWatch; import teetime.variant.methodcallWithPorts.framework.core.ConsumerStage; public class Cache<T> extends ConsumerStage<T, T> { @@ -17,9 +19,13 @@ public class Cache<T> extends ConsumerStage<T, T> { @Override public void onIsPipelineHead() { this.logger.debug("Emitting cached elements..."); + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); for (T cachedElement : this.cachedObjects) { this.send(cachedElement); } + stopWatch.end(); + System.out.println("dur: " + TimeUnit.NANOSECONDS.toMillis(stopWatch.getDurationInNs()) + " ms"); super.onIsPipelineHead(); } diff --git a/src/main/java/teetime/variant/methodcallWithPorts/stage/CountingFilter.java b/src/main/java/teetime/variant/methodcallWithPorts/stage/CountingFilter.java index 08ad2ac8..39a16477 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/stage/CountingFilter.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/stage/CountingFilter.java @@ -9,6 +9,7 @@ public class CountingFilter<T> extends ConsumerStage<T, T> { @Override protected void execute5(final T element) { this.numElementsPassed++; + // this.logger.info("count: " + this.numElementsPassed); this.send(element); } diff --git a/src/main/java/teetime/variant/methodcallWithPorts/stage/ThroughputFilter.java b/src/main/java/teetime/variant/methodcallWithPorts/stage/ThroughputFilter.java index 87abfc8d..c15f8610 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/stage/ThroughputFilter.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/stage/ThroughputFilter.java @@ -35,12 +35,13 @@ public class ThroughputFilter<T> extends ConsumerStage<T, T> { private void computeThroughput() { long diffInNs = System.nanoTime() - this.timestamp; - // long diffInMs = TimeUnit.NANOSECONDS.toMillis(diffInNs); - // long throughputPerMs = this.numPassedElements / diffInMs; - long diffInSec = TimeUnit.NANOSECONDS.toSeconds(diffInNs); - long throughputPerSec = this.numPassedElements / diffInSec; - this.throughputs.add(throughputPerSec); - this.logger.info("Throughput: " + throughputPerSec + " elements/s"); + long diffInMs = TimeUnit.NANOSECONDS.toMillis(diffInNs); + long throughputPerMs = this.numPassedElements / diffInMs; + this.throughputs.add(throughputPerMs); + // this.logger.info("Throughput: " + throughputPerMs + " elements/ms"); + + // long diffInSec = TimeUnit.NANOSECONDS.toSeconds(diffInNs); + // long throughputPerSec = this.numPassedElements / diffInSec; } private void resetTimestamp() { diff --git a/src/main/java/teetime/variant/methodcallWithPorts/stage/basic/merger/Merger.java b/src/main/java/teetime/variant/methodcallWithPorts/stage/basic/merger/Merger.java index daed0fa5..70ec2387 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/stage/basic/merger/Merger.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/stage/basic/merger/Merger.java @@ -52,7 +52,9 @@ public class Merger<T> extends ConsumerStage<T, T> { @Override public void executeWithPorts() { - this.logger.debug("Executing stage..."); + // if (this.logger.isDebugEnabled()) { + // this.logger.debug("Executing stage..."); + // } this.execute5(null); diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/TraceReconstructionAnalysis.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/TraceReconstructionAnalysis.java index 76a10668..071a7aa0 100644 --- a/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/TraceReconstructionAnalysis.java +++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/traceReconstruction/TraceReconstructionAnalysis.java @@ -56,7 +56,7 @@ public class TraceReconstructionAnalysis extends Analysis { private StageWithPort<Void, Long> buildClockPipeline() { Clock clock = new Clock(); - clock.setIntervalDelayInMs(50); + clock.setIntervalDelayInMs(100); return clock; } @@ -64,19 +64,12 @@ public class TraceReconstructionAnalysis extends Analysis { private Pipeline<File, Void> buildPipeline(final StageWithPort<Void, Long> clockStage) { this.classNameRegistryRepository = new ClassNameRegistryRepository(); - // final IsIMonitoringRecordInRange isIMonitoringRecordInRange = new IsIMonitoringRecordInRange(0, 1000); - // final IsOperationExecutionRecordTraceIdPredicate isOperationExecutionRecordTraceIdPredicate = new IsOperationExecutionRecordTraceIdPredicate( - // false, null); // create stages final Dir2RecordsFilter dir2RecordsFilter = new Dir2RecordsFilter(this.classNameRegistryRepository); this.recordCounter = new CountingFilter<IMonitoringRecord>(); final Cache<IMonitoringRecord> cache = new Cache<IMonitoringRecord>(); final StringBufferFilter<IMonitoringRecord> stringBufferFilter = new StringBufferFilter<IMonitoringRecord>(); - // final PredicateFilter<IMonitoringRecord> timestampFilter = new PredicateFilter<IMonitoringRecord>( - // isIMonitoringRecordInRange); - // final PredicateFilter<OperationExecutionRecord> traceIdFilter = new PredicateFilter<OperationExecutionRecord>( - // isOperationExecutionRecordTraceIdPredicate); final InstanceOfFilter<IMonitoringRecord, IFlowRecord> instanceOfFilter = new InstanceOfFilter<IMonitoringRecord, IFlowRecord>( IFlowRecord.class); this.throughputFilter = new ThroughputFilter<IFlowRecord>(); -- GitLab