diff --git a/src/META-INF/explorviz.live_trace_processing.default.properties b/src/META-INF/explorviz.live_trace_processing.default.properties index f50fe0b871801200a9e1ed3cd1fef8d2a6634206..2ca95e1d69462fe7c1b198208f4956725055f361 100644 --- a/src/META-INF/explorviz.live_trace_processing.default.properties +++ b/src/META-INF/explorviz.live_trace_processing.default.properties @@ -17,7 +17,7 @@ explorviz.live_trace_processing.tcp_reader_disruptor_size=32 explorviz.live_trace_processing.trace_reconstruction_output_buffer_size=512 explorviz.live_trace_processing.trace_reconstruction_disruptor_size=32 -explorviz.live_trace_processing.trace_reconstruction_buffer_initial_size=128 +explorviz.live_trace_processing.trace_reconstruction_buffer_initial_size=1024 explorviz.live_trace_processing.trace_summarization_output_buffer_size=64 explorviz.live_trace_processing.trace_summarization_disruptor_size=16 diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java index 57675813c5a832602ec2221635c3ea01ffeccd09..ebb21e48ab9e1300e225981fdb4deddae3f9c549 100644 --- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java +++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java @@ -30,6 +30,14 @@ class TraceReconstructionBuffer { if (event instanceof AbstractBeforeEventRecord) { openEvents++; + final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event; + beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, -1, -1)); // TODO + // if + // invalid + // trace + // would + // be + // null... } else if ((event instanceof AbstractAfterFailedEventRecord) || (event instanceof AbstractAfterEventRecord)) { openEvents--; @@ -75,8 +83,6 @@ class TraceReconstructionBuffer { for (final AbstractEventRecord event : events) { if (event instanceof AbstractBeforeEventRecord) { final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event; - beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, -1, - -1)); // TODO if invalid trace would be null... stack.push(beforeEvent); } else if ((event instanceof AbstractAfterEventRecord) || (event instanceof AbstractAfterFailedEventRecord)) { @@ -90,6 +96,6 @@ class TraceReconstructionBuffer { } } } - return new Trace(events, valid); + return new Trace(new ArrayList<AbstractEventRecord>(events), valid); } } diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java index d3498437ad165c21f997309d7fb91e966ba60b40..9dce7c921118e3cb2d5c787cc80568d65d817fbc 100644 --- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java +++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java @@ -39,8 +39,9 @@ public final class TraceReconstructionFilter extends AbstractFilter implements I traceBuffer.insertEvent(abstractOperationEvent); if (traceBuffer.isFinished()) { - traceId2trace.remove(traceId); deliver(traceBuffer.toTrace(true)); + + traceId2trace.remove(traceId); } } else if (record instanceof Trace) { final Trace trace = (Trace) record; @@ -88,7 +89,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements I } } - for (final Long traceIdToRemove : traceIdsToRemove) { + for (final long traceIdToRemove : traceIdsToRemove) { traceId2trace.remove(traceIdToRemove); } } diff --git a/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java index 6683064f919c951f22771d9201214c861df47545..90b0fbed77f77d200e3298df6071cd7ea4278cde 100644 --- a/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java +++ b/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java @@ -22,6 +22,8 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I private final Map<Trace, TracePatternSummarizationBuffer> trace2buffer = new ConcurrentSkipListMap<Trace, TracePatternSummarizationBuffer>( new TraceComperator()); + // TODO cache for buffer objects + public TracePatternSummarizationFilter(final long maxCollectionDuration, final IPipeReceiver sinkReceiver) { super(sinkReceiver, Constants.TRACE_SUMMARIZATION_DISRUPTOR_SIZE,