Skip to content
Snippets Groups Projects
Commit 86472c10 authored by Florian Fittkau's avatar Florian Fittkau
Browse files

optimized that remote records cant be reduced

parent 6d962415
No related branches found
No related tags found
No related merge requests found
......@@ -10,6 +10,8 @@ import explorviz.live_trace_processing.record.event.AbstractAfterEventRecord;
import explorviz.live_trace_processing.record.event.AbstractAfterFailedEventRecord;
import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.event.remote.BeforeReceivedRemoteCallRecord;
import explorviz.live_trace_processing.record.event.remote.BeforeSentRemoteCallRecord;
import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
import explorviz.live_trace_processing.record.trace.Trace;
......@@ -75,10 +77,16 @@ class TraceReconstructionBuffer {
public final Trace toTrace(final boolean valid) {
final Stack<AbstractBeforeEventRecord> stack = new Stack<AbstractBeforeEventRecord>();
boolean containsRemoteRecord = false;
for (final AbstractEventRecord event : events) {
if (event instanceof AbstractBeforeEventRecord) {
final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event;
stack.push(beforeEvent);
if ((event instanceof BeforeReceivedRemoteCallRecord)
|| (event instanceof BeforeSentRemoteCallRecord)) {
containsRemoteRecord = true;
}
} else if ((event instanceof AbstractAfterEventRecord)
|| (event instanceof AbstractAfterFailedEventRecord)) {
if (!stack.isEmpty()) {
......@@ -91,6 +99,6 @@ class TraceReconstructionBuffer {
}
}
}
return new Trace(new ArrayList<AbstractEventRecord>(events), valid, 1);
return new Trace(new ArrayList<AbstractEventRecord>(events), valid, containsRemoteRecord, 1);
}
}
......@@ -38,7 +38,13 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR
final Trace trace = (Trace) record;
if (trace.isValid()) {
insertIntoBuffer(trace);
if (!trace.containsRemoteRecord()) {
insertIntoBuffer(trace);
} else {
// trace with remote records cant be reduced
makeTraceElementsAccumulator(trace);
deliver(trace);
}
} else {
makeTraceElementsAccumulator(trace);
deliver(trace);
......@@ -77,7 +83,7 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR
final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord;
abstractBeforeOperationEventRecord.getRuntimeStatisticInformation()
.makeAccumulator(abstractBeforeOperationEventRecord.getObjectId());
.makeAccumulator(abstractBeforeOperationEventRecord.getObjectId());
} else {
abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator(0);
......
......@@ -184,6 +184,11 @@ class TCPReaderOneClient extends Thread {
if (validByte == (byte) 0) {
valid = false;
}
final byte containsRemoteRecordByte = buffer.get();
boolean containsRemoteRecord = true;
if (containsRemoteRecordByte == (byte) 0) {
containsRemoteRecord = false;
}
final int calledTimes = buffer.getInt();
final int eventsLength = buffer.getInt();
final int byteLength = buffer.getInt();
......@@ -200,7 +205,8 @@ class TCPReaderOneClient extends Thread {
}
}
putInRingBuffer(new Trace(events, valid, calledTimes));
putInRingBuffer(new Trace(events, valid, containsRemoteRecord,
calledTimes));
break;
}
buffer.position(buffer.position() - 10);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment