timing.core: make CallGraphAnalysis use LazyArrayListStore.
authorMatthew Khouzam <matthew.khouzam@ericsson.com>
Fri, 26 Aug 2016 17:30:27 +0000 (13:30 -0400)
committerMatthew Khouzam <matthew.khouzam@ericsson.com>
Wed, 31 Aug 2016 20:43:04 +0000 (16:43 -0400)
The callgraph analysis receive out of order segments when multi-threaded.
This accelerates the callgraph creation by an order of magnitude in that
case.

Bug 500591

Change-Id: Iba9436a7df9ccbc4d3cb3d6ec5ce7377e17f8d2c
Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/79878
Reviewed-by: Hudson CI
Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/internal/analysis/timing/core/callgraph/CallGraphAnalysis.java

index e34f7b5caec24f66bac6425afa6fb47a785a3eda..fab4c6a40c3d3508df3cf1f1e42978af25b1e6fb 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.tracecompass.analysis.timing.core.segmentstore.IAnalysisProgr
 import org.eclipse.tracecompass.analysis.timing.core.segmentstore.ISegmentStoreProvider;
 import org.eclipse.tracecompass.common.core.StreamUtils;
 import org.eclipse.tracecompass.internal.analysis.timing.core.Activator;
-import org.eclipse.tracecompass.internal.analysis.timing.core.store.ArrayListStore;
+import org.eclipse.tracecompass.internal.analysis.timing.core.store.LazyArrayListStore;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
 import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
@@ -70,7 +70,7 @@ public abstract class CallGraphAnalysis extends TmfAbstractAnalysisModule implem
     /**
      * Segment store
      */
-    private final ISegmentStore<@NonNull ISegment> fStore = new ArrayListStore<>();
+    private final ISegmentStore<@NonNull ISegment> fStore = new LazyArrayListStore<>();
 
     /**
      * Listeners
This page took 0.024895 seconds and 5 git commands to generate.