From 3f69df0500cfd7e1a4e60f3c3a5d0cf3171b60af Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Tue, 9 Dec 2014 15:53:58 +0100 Subject: [PATCH] Added naive implementation of the calculation for the average value --- .../gui/model/domain/AggregatedExecutionEntry.java | 10 ++++++++++ .../gui/model/importer/filter/TraceAggregator.java | 1 + .../gui/view/AggregatedTraceDetailComposite.java | 11 +++++++++++ 3 files changed, 22 insertions(+) diff --git a/src/main/java/kieker/gui/model/domain/AggregatedExecutionEntry.java b/src/main/java/kieker/gui/model/domain/AggregatedExecutionEntry.java index 391c0339..7197b267 100644 --- a/src/main/java/kieker/gui/model/domain/AggregatedExecutionEntry.java +++ b/src/main/java/kieker/gui/model/domain/AggregatedExecutionEntry.java @@ -28,6 +28,7 @@ public final class AggregatedExecutionEntry { private final String operation; private long minDuration; private long maxDuration; + private long avgDuration; private int calls; public AggregatedExecutionEntry(final ExecutionEntry execEntry) { @@ -75,6 +76,11 @@ public final class AggregatedExecutionEntry { this.calls++; this.minDuration = Math.min(this.minDuration, executionEntry.getDuration()); this.maxDuration = Math.max(this.maxDuration, executionEntry.getDuration()); + this.avgDuration += executionEntry.getDuration(); + } + + public void recalculateValues() { + this.avgDuration /= this.calls; } public long getMinDuration() { @@ -85,6 +91,10 @@ public final class AggregatedExecutionEntry { return this.maxDuration; } + public long getAvgDuration() { + return this.avgDuration; + } + public int getCalls() { return this.calls; } diff --git a/src/main/java/kieker/gui/model/importer/filter/TraceAggregator.java b/src/main/java/kieker/gui/model/importer/filter/TraceAggregator.java index 35739393..7d1cb256 100644 --- a/src/main/java/kieker/gui/model/importer/filter/TraceAggregator.java +++ b/src/main/java/kieker/gui/model/importer/filter/TraceAggregator.java @@ -46,6 +46,7 @@ public final class TraceAggregator extends AbstractConsumerStage<ExecutionEntry> @Override public void onTerminating() throws Exception { for (final AggregatedExecutionEntry aggregatedExecutionEntry : this.aggregationMap.values()) { + aggregatedExecutionEntry.recalculateValues(); this.outputPort.send(aggregatedExecutionEntry); } super.onTerminating(); diff --git a/src/main/java/kieker/gui/view/AggregatedTraceDetailComposite.java b/src/main/java/kieker/gui/view/AggregatedTraceDetailComposite.java index f0e8bc7a..82733f46 100644 --- a/src/main/java/kieker/gui/view/AggregatedTraceDetailComposite.java +++ b/src/main/java/kieker/gui/view/AggregatedTraceDetailComposite.java @@ -21,6 +21,8 @@ public final class AggregatedTraceDetailComposite extends Composite { private final Label lblStackDepthDisplay; private final Label lblMinimalDurationDisplay; private final Label lblMaximalDurationDisplay; + private final Label lblAverageDuration; + private final Label lblAverageDurationDisplay; public AggregatedTraceDetailComposite(final Composite parent, final int style) { super(parent, style); @@ -87,6 +89,14 @@ public final class AggregatedTraceDetailComposite extends Composite { this.lblMinimalDurationDisplay.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); this.lblMinimalDurationDisplay.setText("N/A"); + this.lblAverageDuration = new Label(this, SWT.NONE); + this.lblAverageDuration.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); + this.lblAverageDuration.setText("Average Duration:"); + + this.lblAverageDurationDisplay = new Label(this, SWT.NONE); + this.lblAverageDurationDisplay.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); + this.lblAverageDurationDisplay.setText("N/A"); + final Label lblMaximalDuration = new Label(this, SWT.NONE); lblMaximalDuration.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); lblMaximalDuration.setText("Maximal Duration:"); @@ -105,6 +115,7 @@ public final class AggregatedTraceDetailComposite extends Composite { this.lblMinimalDurationDisplay.setText(Long.toString(trace.getMinDuration())); this.lblMaximalDurationDisplay.setText(Long.toString(trace.getMaxDuration())); + this.lblAverageDurationDisplay.setText(Long.toString(trace.getAvgDuration())); if (trace.isFailed()) { this.lblFailedDisplay.setText("Yes (" + trace.getFailedCause() + ")"); -- GitLab