From 1aaed454a576758f99004ccc80c6741896361eb3 Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Mon, 30 Jun 2014 08:22:08 +0200 Subject: [PATCH] improved performance of InstanceOfFilter --- .../methodcallWithPorts/stage/InstanceOfFilter.java | 3 ++- .../TraceReconstructionFilter.java | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/teetime/variant/methodcallWithPorts/stage/InstanceOfFilter.java b/src/main/java/teetime/variant/methodcallWithPorts/stage/InstanceOfFilter.java index a23da017..a205d20b 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/stage/InstanceOfFilter.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/stage/InstanceOfFilter.java @@ -18,10 +18,11 @@ public class InstanceOfFilter<I, O> extends ConsumerStage<I, O> { this.type = type; } + @SuppressWarnings("unchecked") @Override protected void execute5(final I element) { if (this.type.isInstance(element)) { - this.send(this.type.cast(element)); + this.send((O) element); } else { // swallow up the element if (this.logger.isDebugEnabled()) { this.logger.debug("element is not an instance of " + this.type.getName() + ", but of " + element.getClass()); diff --git a/src/main/java/teetime/variant/methodcallWithPorts/stage/kieker/traceReconstruction/TraceReconstructionFilter.java b/src/main/java/teetime/variant/methodcallWithPorts/stage/kieker/traceReconstruction/TraceReconstructionFilter.java index aa307ce4..b2516a07 100644 --- a/src/main/java/teetime/variant/methodcallWithPorts/stage/kieker/traceReconstruction/TraceReconstructionFilter.java +++ b/src/main/java/teetime/variant/methodcallWithPorts/stage/kieker/traceReconstruction/TraceReconstructionFilter.java @@ -40,7 +40,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE private long maxTraceTimeout = Long.MAX_VALUE; private long maxEncounteredLoggingTimestamp = -1; - private static final Map<Long, TraceBuffer> traceId2trace = new HashMapWithDefault<Long, TraceBuffer>(new TraceBuffer()); + private final Map<Long, TraceBuffer> traceId2trace = new HashMapWithDefault<Long, TraceBuffer>(new TraceBuffer()); @Override protected void execute5(final IFlowRecord element) { @@ -51,9 +51,9 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE } private void putIfFinished(final Long traceId) { - final TraceBuffer traceBuffer = TraceReconstructionFilter.traceId2trace.get(traceId); + final TraceBuffer traceBuffer = this.traceId2trace.get(traceId); if (traceBuffer.isFinished()) { - TraceReconstructionFilter.traceId2trace.remove(traceId); + this.traceId2trace.remove(traceId); this.put(traceBuffer); } } @@ -62,12 +62,12 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE Long traceId = null; if (record instanceof TraceMetadata) { traceId = ((TraceMetadata) record).getTraceId(); - final TraceBuffer traceBuffer = TraceReconstructionFilter.traceId2trace.get(traceId); + final TraceBuffer traceBuffer = this.traceId2trace.get(traceId); traceBuffer.setTrace((TraceMetadata) record); } else if (record instanceof AbstractTraceEvent) { traceId = ((AbstractTraceEvent) record).getTraceId(); - final TraceBuffer traceBuffer = TraceReconstructionFilter.traceId2trace.get(traceId); + final TraceBuffer traceBuffer = this.traceId2trace.get(traceId); traceBuffer.insertEvent((AbstractTraceEvent) record); } @@ -77,7 +77,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE @Override public void onIsPipelineHead() { - Iterator<TraceBuffer> iterator = TraceReconstructionFilter.traceId2trace.values().iterator(); + Iterator<TraceBuffer> iterator = this.traceId2trace.values().iterator(); while (iterator.hasNext()) { TraceBuffer traceBuffer = iterator.next(); this.put(traceBuffer); -- GitLab