Skip to content
Snippets Groups Projects
Commit b9cd8b30 authored by Nils Christian Ehmke's avatar Nils Christian Ehmke
Browse files

Modifications to reduce memory usage

parent 9b30ff48
No related branches found
No related tags found
No related merge requests found
...@@ -48,10 +48,12 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> ...@@ -48,10 +48,12 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>>
} }
public AbstractOperationCall(final String container, final String component, final String operation, final String failedCause) { public AbstractOperationCall(final String container, final String component, final String operation, final String failedCause) {
this.container = container; this.container = container.intern();
this.component = component; this.component = component.intern();
this.operation = operation; this.operation = operation.intern();
this.failedCause = failedCause; if (failedCause != null) {
this.failedCause = failedCause.intern();
}
} }
public void addChild(final T child) { public void addChild(final T child) {
...@@ -99,7 +101,10 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> ...@@ -99,7 +101,10 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>>
} }
public final void setFailedCause(final String failedCause) { public final void setFailedCause(final String failedCause) {
this.failedCause = failedCause; this.failedCause = failedCause;
if (this.failedCause != null) {
this.failedCause = this.failedCause.intern();
}
} }
public final boolean containsFailure() { public final boolean containsFailure() {
......
...@@ -82,43 +82,43 @@ public final class DataModel extends Observable { ...@@ -82,43 +82,43 @@ public final class DataModel extends Observable {
} }
public List<Trace> getTracesCopy() { public List<Trace> getTracesCopy() {
return new ArrayList<>(this.traces); return this.traces;
} }
public List<Trace> getFailedTracesCopy() { public List<Trace> getFailedTracesCopy() {
return new ArrayList<>(this.failedTraces); return this.failedTraces;
} }
public List<Trace> getFailureContainingTracesCopy() { public List<Trace> getFailureContainingTracesCopy() {
return new ArrayList<>(this.failureContainingTraces); return this.failureContainingTraces;
} }
public List<AggregatedTrace> getAggregatedTracesCopy() { public List<AggregatedTrace> getAggregatedTracesCopy() {
return new ArrayList<>(this.aggregatedTraces); return this.aggregatedTraces;
} }
public List<AggregatedTrace> getFailedAggregatedTracesCopy() { public List<AggregatedTrace> getFailedAggregatedTracesCopy() {
return new ArrayList<>(this.failedAggregatedTraces); return this.failedAggregatedTraces;
} }
public List<AggregatedTrace> getFailureContainingAggregatedTracesCopy() { public List<AggregatedTrace> getFailureContainingAggregatedTracesCopy() {
return new ArrayList<>(this.failureAggregatedContainingTraces); return this.failureAggregatedContainingTraces;
} }
public List<OperationCall> getOperationCalls() { public List<OperationCall> getOperationCalls() {
return new ArrayList<>(this.operationCalls); return this.operationCalls;
} }
public List<OperationCall> getFailedOperationCalls() { public List<OperationCall> getFailedOperationCalls() {
return new ArrayList<>(this.failedOperationCalls); return this.failedOperationCalls;
} }
public List<AggregatedOperationCall> getAggregatedOperationCalls() { public List<AggregatedOperationCall> getAggregatedOperationCalls() {
return new ArrayList<>(this.aggregatedOperationCalls); return this.aggregatedOperationCalls;
} }
public List<AggregatedOperationCall> getAggregatedFailedOperationCalls() { public List<AggregatedOperationCall> getAggregatedFailedOperationCalls() {
return new ArrayList<>(this.aggregatedFailedOperationCalls); return this.aggregatedFailedOperationCalls;
} }
public TimeUnit getTimeUnit() { public TimeUnit getTimeUnit() {
......
...@@ -19,6 +19,7 @@ package kieker.diagnosis.model.importer.stages; ...@@ -19,6 +19,7 @@ package kieker.diagnosis.model.importer.stages;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
import kieker.diagnosis.domain.AggregatedOperationCall; import kieker.diagnosis.domain.AggregatedOperationCall;
import kieker.diagnosis.domain.AggregatedTrace; import kieker.diagnosis.domain.AggregatedTrace;
...@@ -32,11 +33,16 @@ import kieker.diagnosis.domain.Trace; ...@@ -32,11 +33,16 @@ import kieker.diagnosis.domain.Trace;
*/ */
public final class AggregatedTraceStatisticsDecorator extends AbstractStage<AggregatedTrace, AggregatedTrace> { public final class AggregatedTraceStatisticsDecorator extends AbstractStage<AggregatedTrace, AggregatedTrace> {
private long counter;
@Override @Override
public void execute(final AggregatedTrace trace) { public void execute(final AggregatedTrace trace) {
addNumberOfCalls(trace.getRootOperationCall(), trace.getTraces().size()); addNumberOfCalls(trace.getRootOperationCall(), trace.getTraces().size());
addDurationStatistics(trace); addDurationStatistics(trace);
// The references are no longer needed
trace.getTraces().clear();
super.send(trace); super.send(trace);
} }
......
...@@ -52,6 +52,7 @@ final class LegacyTraceReconstructor extends AbstractStage<OperationExecutionRec ...@@ -52,6 +52,7 @@ final class LegacyTraceReconstructor extends AbstractStage<OperationExecutionRec
traceBuffer.handleEvent(input); traceBuffer.handleEvent(input);
if (traceBuffer.isTraceComplete()) { if (traceBuffer.isTraceComplete()) {
final Trace trace = traceBuffer.reconstructTrace(); final Trace trace = traceBuffer.reconstructTrace();
traceBuffers.remove(traceID);
super.send(trace); super.send(trace);
} }
} }
......
...@@ -55,7 +55,7 @@ final class TraceReconstructor extends AbstractStage<IFlowRecord, Trace> { ...@@ -55,7 +55,7 @@ final class TraceReconstructor extends AbstractStage<IFlowRecord, Trace> {
this.traceBuffers.put(traceID, newTraceBuffer); this.traceBuffers.put(traceID, newTraceBuffer);
} }
private void handleOperationEventRecord(final AbstractOperationEvent input) { private void handleOperationEventRecord(final AbstractOperationEvent input) {
final long traceID = input.getTraceId(); final long traceID = input.getTraceId();
final TraceBuffer traceBuffer = this.traceBuffers.get(traceID); final TraceBuffer traceBuffer = this.traceBuffers.get(traceID);
...@@ -63,9 +63,12 @@ final class TraceReconstructor extends AbstractStage<IFlowRecord, Trace> { ...@@ -63,9 +63,12 @@ final class TraceReconstructor extends AbstractStage<IFlowRecord, Trace> {
traceBuffer.handleEvent(input); traceBuffer.handleEvent(input);
if (traceBuffer.isTraceComplete()) { if (traceBuffer.isTraceComplete()) {
final Trace trace = traceBuffer.reconstructTrace(); final Trace trace = traceBuffer.reconstructTrace();
traceBuffers.remove(traceID);
super.send(trace); super.send(trace);
} }
} }
private static final class TraceBuffer { private static final class TraceBuffer {
......
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