From c7d7e74ef13aa23dd298049032eb47a387ff5b32 Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Thu, 26 May 2016 18:02:59 -0400 Subject: [PATCH] analysis: Add totals to latency statistics view Having the total is useful to know how much time was spent in a given segment type. For example, I have a Maven output analysis that computes the beginning and end of each goal. By having the total, I can quickly see which type of goal took the longest and then I can drill down to single instances. Change-Id: Id59a81191726ad926821f7a250d56f4fbc622f7a Signed-off-by: Marc-Andre Laperle Reviewed-on: https://git.eclipse.org/r/73770 Reviewed-by: Matthew Khouzam Tested-by: Matthew Khouzam --- .../META-INF/MANIFEST.MF | 2 +- .../statistics/SegmentStoreStatistics.java | 13 +++++++++++ .../META-INF/MANIFEST.MF | 2 +- .../AbstractSegmentStoreStatisticsViewer.java | 22 ++++++++++++++++++- .../segmentstore/statistics/Messages.java | 6 +++++ .../statistics/messages.properties | 1 + 6 files changed, 43 insertions(+), 3 deletions(-) diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.core/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.timing.core/META-INF/MANIFEST.MF index 9a5489390f..27b344b922 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.core/META-INF/MANIFEST.MF +++ b/analysis/org.eclipse.tracecompass.analysis.timing.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.1.0.qualifier Bundle-Localization: plugin Bundle-SymbolicName: org.eclipse.tracecompass.analysis.timing.core;singleton:=true Bundle-Activator: org.eclipse.tracecompass.internal.analysis.timing.core.Activator diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/statistics/SegmentStoreStatistics.java b/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/statistics/SegmentStoreStatistics.java index 7adbe7255e..f71c651984 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/statistics/SegmentStoreStatistics.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/statistics/SegmentStoreStatistics.java @@ -25,6 +25,7 @@ public class SegmentStoreStatistics { private long fNbSegments; private double fAverage; private double fVariance; + private double fTotal; /** * Constructor @@ -35,6 +36,7 @@ public class SegmentStoreStatistics { fNbSegments = 0; fAverage = 0.0; fVariance = 0.0; + fTotal = 0.0; } /** @@ -129,5 +131,16 @@ public class SegmentStoreStatistics { double delta = value - fAverage; fAverage += delta / fNbSegments; fVariance += delta * (value - fAverage); + fTotal += value; + } + + /** + * Get total value + * + * @return total value + * @since 1.1 + */ + public double getTotal() { + return fTotal; } } diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF index 2cbb6c15d5..448c533a67 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ lttManifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.1.0.qualifier Bundle-Localization: plugin Bundle-SymbolicName: org.eclipse.tracecompass.analysis.timing.ui;singleton:=true Bundle-Activator: org.eclipse.tracecompass.internal.analysis.timing.ui.Activator diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsViewer.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsViewer.java index ad5f7d88bc..e6472353ce 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsViewer.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/statistics/AbstractSegmentStoreStatisticsViewer.java @@ -65,7 +65,8 @@ public abstract class AbstractSegmentStoreStatisticsViewer extends AbstractTmfTr checkNotNull(Messages.SegmentStoreStatistics_MaxLabel), checkNotNull(Messages.SegmentStoreStatistics_AverageLabel), checkNotNull(Messages.SegmentStoreStatisticsViewer_StandardDeviation), - checkNotNull(Messages.SegmentStoreStatisticsViewer_Count) + checkNotNull(Messages.SegmentStoreStatisticsViewer_Count), + checkNotNull(Messages.SegmentStoreStatisticsViewer_Total) }; /** @@ -119,6 +120,8 @@ public abstract class AbstractSegmentStoreStatisticsViewer extends AbstractTmfTr value = String.valueOf(toFormattedString(entry.getEntry().getStdDev())); } else if (columnIndex == 5) { value = String.valueOf(entry.getEntry().getNbSegments()); + } else if (columnIndex == 6) { + value = String.valueOf(toFormattedString(entry.getEntry().getTotal())); } } } @@ -254,6 +257,23 @@ public abstract class AbstractSegmentStoreStatisticsViewer extends AbstractTmfTr } }); columns.add(column); + column = new TmfTreeColumnData(COLUMN_NAMES[6]); + column.setAlignment(SWT.RIGHT); + column.setComparator(new ViewerComparator() { + @Override + public int compare(@Nullable Viewer viewer, @Nullable Object e1, @Nullable Object e2) { + if ((e1 == null) || (e2 == null)) { + return 0; + } + + SegmentStoreStatisticsEntry n1 = (SegmentStoreStatisticsEntry) e1; + SegmentStoreStatisticsEntry n2 = (SegmentStoreStatisticsEntry) e2; + + return Double.compare(n1.getEntry().getTotal(), n2.getEntry().getTotal()); + + } + }); + columns.add(column); column = new TmfTreeColumnData(""); //$NON-NLS-1$ columns.add(column); return columns; diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/Messages.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/Messages.java index 3086c1af09..cadeaa8f41 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/Messages.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/Messages.java @@ -32,6 +32,12 @@ public class Messages extends NLS { public static String SegmentStoreStatistics_AverageLabel; /** Name of count column */ public static String SegmentStoreStatisticsViewer_Count; + /** + * Name of count column + * + * @since 1.1 + */ + public static String SegmentStoreStatisticsViewer_Total; /** Name of average column */ public static String SegmentStoreStatisticsViewer_StandardDeviation; /** Menu item for go to minimum duration */ diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/messages.properties b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/messages.properties index bbc11cdbe3..beb2de0fc6 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/messages.properties +++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/internal/analysis/timing/ui/views/segmentstore/statistics/messages.properties @@ -14,6 +14,7 @@ SegmentStoreStatistics_Statistics_MinLabel=Minimum SegmentStoreStatistics_MaxLabel=Maximum SegmentStoreStatistics_AverageLabel=Average SegmentStoreStatisticsViewer_Count=Count +SegmentStoreStatisticsViewer_Total=Total SegmentStoreStatisticsViewer_StandardDeviation=Standard Deviation SegmentStoreStatisticsViewer_GotoMinAction=Go to minimum SegmentStoreStatisticsViewer_GotoMaxAction=Go to maximum \ No newline at end of file -- 2.34.1