Index: tools/telemetry/telemetry/web_perf/metrics/memory_timeline.py |
diff --git a/tools/telemetry/telemetry/web_perf/metrics/memory_timeline.py b/tools/telemetry/telemetry/web_perf/metrics/memory_timeline.py |
deleted file mode 100644 |
index c20b4d06446fb48598f5f7f617503f2f0efcd821..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/web_perf/metrics/memory_timeline.py |
+++ /dev/null |
@@ -1,68 +0,0 @@ |
-# Copyright 2015 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import collections |
- |
-from telemetry.timeline import memory_dump_event |
-from telemetry.value import improvement_direction |
-from telemetry.value import list_of_scalar_values |
-from telemetry.web_perf.metrics import timeline_based_metric |
- |
- |
-DEFAULT_METRICS = memory_dump_event.MMAPS_METRICS.keys() |
- |
- |
-def _AggregateDicts(dicts): |
- """Turn a sequence of dictionaries into a dictionary of lists.""" |
- result = collections.defaultdict(list) |
- for d in dicts: |
- for k, v in d.iteritems(): |
- result[k].append(v) |
- return result |
- |
- |
-class MemoryTimelineMetric(timeline_based_metric.TimelineBasedMetric): |
- """MemoryTimelineMetric reports summary stats from memory dump events.""" |
- |
- def AddResults(self, model, renderer_thread, interactions, results): |
- del renderer_thread # unused |
- def ContainedIn(dump, interaction): |
- return interaction.start < dump.start and dump.end < interaction.end |
- |
- def OccursDuringInteractions(dump): |
- return any(ContainedIn(dump, interaction) for interaction in interactions) |
- |
- def ReportResultsForProcess(memory_dumps, process_name): |
- if not memory_dumps: |
- metric_values = dict.fromkeys(DEFAULT_METRICS) |
- none_reason = 'No memory dumps with mmaps found within interactions' |
- else: |
- metric_values = _AggregateDicts( |
- dump.GetMemoryUsage() for dump in memory_dumps) |
- none_reason = None |
- for metric, values in metric_values.iteritems(): |
- results.AddValue(list_of_scalar_values.ListOfScalarValues( |
- page=results.current_page, |
- name='memory_%s_%s' % (metric, process_name), |
- units='bytes', |
- tir_label=interactions[0].label, |
- values=values, |
- none_value_reason=none_reason, |
- improvement_direction=improvement_direction.DOWN)) |
- |
- memory_dumps = filter(OccursDuringInteractions, |
- model.IterGlobalMemoryDumps()) |
- |
- # Either all dumps should contain memory maps (Android, Linux), or none |
- # of them (Windows, Mac). |
- assert len(set(dump.has_mmaps for dump in memory_dumps)) <= 1 |
- |
- ReportResultsForProcess(memory_dumps, 'total') |
- |
- process_dumps_by_name = _AggregateDicts( |
- {process_dump.process_name.lower().replace(' ', '_'): process_dump |
- for process_dump in memory_dump.IterProcessMemoryDumps()} |
- for memory_dump in memory_dumps) |
- for process_name, process_dumps in process_dumps_by_name.iteritems(): |
- ReportResultsForProcess(process_dumps, process_name) |