Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Unified Diff: tools/telemetry/telemetry/timeline/trace_event_importer.py

Issue 1196253011: [Telemetry] Adding Memory Timeline Metric (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: memory_timeline metric should use IterMemoryDumpEvents Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/timeline/trace_event_importer.py
diff --git a/tools/telemetry/telemetry/timeline/trace_event_importer.py b/tools/telemetry/telemetry/timeline/trace_event_importer.py
index d7eb5a3bcd9189da574f754c90d5e836631a26c1..81982d44ff7f52ffbbc2ca1f64db584308963af1 100644
--- a/tools/telemetry/telemetry/timeline/trace_event_importer.py
+++ b/tools/telemetry/telemetry/timeline/trace_event_importer.py
@@ -12,6 +12,7 @@ import copy
import telemetry.timeline.async_slice as tracing_async_slice
import telemetry.timeline.flow_event as tracing_flow_event
from telemetry.timeline import importer
+from telemetry.timeline import memory_dump_event
from telemetry.timeline import trace_data as trace_data_module
@@ -25,6 +26,7 @@ class TraceEventTimelineImporter(importer.TimelineImporter):
self._all_async_events = []
self._all_object_events = []
self._all_flow_events = []
+ self._all_memory_dump_events = {}
eakuefner 2015/06/25 15:56:20 nit: self._all_memory_dump_events_by_dump_id would
perezju 2015/06/26 11:34:52 Done.
self._events = trace_data.GetEventsFor(trace_data_module.CHROME_TRACE_PART)
@@ -178,6 +180,15 @@ class TraceEventTimelineImporter(importer.TimelineImporter):
'event': event,
'thread': thread})
+ def _ProcessMemoryDumpEvent(self, event):
+ dump_id = event.get('id')
+ if not dump_id:
+ self._model.import_errors.append(
+ 'Memroy dump event with missing dump id.')
eakuefner 2015/06/25 15:56:20 nit: Memroy -> Memory
perezju 2015/06/26 11:34:52 Done.
+ return
+ self._all_memory_dump_events.setdefault(dump_id, [])
+ self._all_memory_dump_events[dump_id].append(event)
+
def ImportEvents(self):
"""Walks through the events_ list and outputs the structures discovered to
model_.
@@ -208,6 +219,8 @@ class TraceEventTimelineImporter(importer.TimelineImporter):
self._ProcessObjectEvent(event)
elif phase == 's' or phase == 't' or phase == 'f':
self._ProcessFlowEvent(event)
+ elif phase == 'v':
+ self._ProcessMemoryDumpEvent(event)
else:
self._model.import_errors.append('Unrecognized event phase: ' +
phase + '(' + event['name'] + ')')
@@ -227,6 +240,7 @@ class TraceEventTimelineImporter(importer.TimelineImporter):
self._SetGpuProcess()
self._CreateExplicitObjects()
self._CreateImplicitObjects()
+ self._CreateMemoryDumps()
def _CreateAsyncSlices(self):
if len(self._all_async_events) == 0:
@@ -392,6 +406,11 @@ class TraceEventTimelineImporter(importer.TimelineImporter):
# Make this event the next start event in this flow.
flow_id_to_event[event['id']] = flow_event
+ def _CreateMemoryDumps(self):
+ self._model.SetMemoryDumpEvents(
+ memory_dump_event.MemoryDumpEvent(events)
+ for events in self._all_memory_dump_events.itervalues())
+
def _SetBrowserProcess(self):
for thread in self._model.GetAllThreads():
if thread.name == 'CrBrowserMain':

Powered by Google App Engine
This is Rietveld 408576698