| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import collections | 5 import collections |
| 6 | 6 |
| 7 from telemetry.timeline import memory_dump_event | 7 from telemetry.timeline import memory_dump_event |
| 8 from telemetry.value import improvement_direction |
| 8 from telemetry.value import list_of_scalar_values | 9 from telemetry.value import list_of_scalar_values |
| 9 from telemetry.web_perf.metrics import timeline_based_metric | 10 from telemetry.web_perf.metrics import timeline_based_metric |
| 10 | 11 |
| 11 | 12 |
| 12 DEFAULT_METRICS = memory_dump_event.MMAPS_METRICS.keys() | 13 DEFAULT_METRICS = memory_dump_event.MMAPS_METRICS.keys() |
| 13 | 14 |
| 14 | 15 |
| 15 def _AggregateDicts(dicts): | 16 def _AggregateDicts(dicts): |
| 16 """Turn a sequence of dictionaries into a dictionary of lists.""" | 17 """Turn a sequence of dictionaries into a dictionary of lists.""" |
| 17 result = collections.defaultdict(list) | 18 result = collections.defaultdict(list) |
| (...skipping 21 matching lines...) Expand all Loading... |
| 39 else: | 40 else: |
| 40 metric_values = _AggregateDicts( | 41 metric_values = _AggregateDicts( |
| 41 dump.GetMemoryUsage() for dump in memory_dumps) | 42 dump.GetMemoryUsage() for dump in memory_dumps) |
| 42 none_reason = None | 43 none_reason = None |
| 43 for metric, values in metric_values.iteritems(): | 44 for metric, values in metric_values.iteritems(): |
| 44 results.AddValue(list_of_scalar_values.ListOfScalarValues( | 45 results.AddValue(list_of_scalar_values.ListOfScalarValues( |
| 45 page=results.current_page, | 46 page=results.current_page, |
| 46 name='memory_%s_%s' % (metric, process_name), | 47 name='memory_%s_%s' % (metric, process_name), |
| 47 units='bytes', | 48 units='bytes', |
| 48 values=values, | 49 values=values, |
| 49 none_value_reason=none_reason)) | 50 none_value_reason=none_reason, |
| 51 improvement_direction=improvement_direction.DOWN)) |
| 50 | 52 |
| 51 memory_dumps = filter(HasMmapsDuringInteractions, | 53 memory_dumps = filter(HasMmapsDuringInteractions, |
| 52 model.IterGlobalMemoryDumps()) | 54 model.IterGlobalMemoryDumps()) |
| 53 | 55 |
| 54 ReportResultsForProcess(memory_dumps, 'total') | 56 ReportResultsForProcess(memory_dumps, 'total') |
| 55 | 57 |
| 56 process_dumps_by_name = _AggregateDicts( | 58 process_dumps_by_name = _AggregateDicts( |
| 57 {process_dump.process_name.lower().replace(' ', '_'): process_dump | 59 {process_dump.process_name.lower().replace(' ', '_'): process_dump |
| 58 for process_dump in memory_dump.IterProcessMemoryDumps()} | 60 for process_dump in memory_dump.IterProcessMemoryDumps()} |
| 59 for memory_dump in memory_dumps) | 61 for memory_dump in memory_dumps) |
| 60 for process_name, process_dumps in process_dumps_by_name.iteritems(): | 62 for process_name, process_dumps in process_dumps_by_name.iteritems(): |
| 61 ReportResultsForProcess(process_dumps, process_name) | 63 ReportResultsForProcess(process_dumps, process_name) |
| OLD | NEW |