OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 from metrics import memory | 5 from metrics import memory |
6 from metrics import Metric | 6 from metrics import Metric |
| 7 from telemetry.value import improvement_direction |
7 from telemetry.value import scalar | 8 from telemetry.value import scalar |
8 | 9 |
9 | 10 |
10 class SystemMemoryMetric(Metric): | 11 class SystemMemoryMetric(Metric): |
11 """SystemMemoryMetric gathers system memory statistic. | 12 """SystemMemoryMetric gathers system memory statistic. |
12 | 13 |
13 This metric collects system memory stats per test. It reports the difference | 14 This metric collects system memory stats per test. It reports the difference |
14 (delta) in system memory starts from the start of the test to the end of it. | 15 (delta) in system memory starts from the start of the test to the end of it. |
15 """ | 16 """ |
16 | 17 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 return | 58 return |
58 exclude_metrics = exclude_metrics or {} | 59 exclude_metrics = exclude_metrics or {} |
59 memory.AddResultsForProcesses(results, memory_stats, | 60 memory.AddResultsForProcesses(results, memory_stats, |
60 metric_trace_name=trace_name, chart_trace_name='delta', | 61 metric_trace_name=trace_name, chart_trace_name='delta', |
61 exclude_metrics=exclude_metrics) | 62 exclude_metrics=exclude_metrics) |
62 | 63 |
63 if 'SystemCommitCharge' not in exclude_metrics: | 64 if 'SystemCommitCharge' not in exclude_metrics: |
64 results.AddValue(scalar.ScalarValue( | 65 results.AddValue(scalar.ScalarValue( |
65 results.current_page, | 66 results.current_page, |
66 'commit_charge_delta.%s' % (trace_name or 'commit_charge'), 'kb', | 67 'commit_charge_delta.%s' % (trace_name or 'commit_charge'), 'kb', |
67 memory_stats['SystemCommitCharge'], important=False)) | 68 memory_stats['SystemCommitCharge'], important=False, |
| 69 improvement_direction=improvement_direction.DOWN)) |
68 | 70 |
69 if 'ProcessCount' not in exclude_metrics: | 71 if 'ProcessCount' not in exclude_metrics: |
70 results.AddValue(scalar.ScalarValue( | 72 results.AddValue(scalar.ScalarValue( |
71 results.current_page, | 73 results.current_page, |
72 'processes_delta.%s' % (trace_name or 'processes'), 'count', | 74 'processes_delta.%s' % (trace_name or 'processes'), 'count', |
73 memory_stats['ProcessCount'], important=False)) | 75 memory_stats['ProcessCount'], important=False, |
| 76 improvement_direction=improvement_direction.DOWN)) |
74 | 77 |
75 | 78 |
76 def _SubtractMemoryStats(end_memory_stats, start_memory_stats): | 79 def _SubtractMemoryStats(end_memory_stats, start_memory_stats): |
77 """Computes the difference in memory usage stats. | 80 """Computes the difference in memory usage stats. |
78 | 81 |
79 Each of the two stats arguments is a dict with the following format: | 82 Each of the two stats arguments is a dict with the following format: |
80 {'Browser': {metric: value, ...}, | 83 {'Browser': {metric: value, ...}, |
81 'Renderer': {metric: value, ...}, | 84 'Renderer': {metric: value, ...}, |
82 'Gpu': {metric: value, ...}, | 85 'Gpu': {metric: value, ...}, |
83 'ProcessCount': value, | 86 'ProcessCount': value, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 memory_stats[process_type] = end_process_memory - start_value | 118 memory_stats[process_type] = end_process_memory - start_value |
116 else: | 119 else: |
117 for metric in end_process_memory: | 120 for metric in end_process_memory: |
118 end_value = end_process_memory[metric] | 121 end_value = end_process_memory[metric] |
119 start_value = start_memory_stats[process_type][metric] or 0 | 122 start_value = start_memory_stats[process_type][metric] or 0 |
120 if 'Peak' in metric: | 123 if 'Peak' in metric: |
121 memory_stats[process_type][metric] = end_value | 124 memory_stats[process_type][metric] = end_value |
122 else: | 125 else: |
123 memory_stats[process_type][metric] = end_value - start_value | 126 memory_stats[process_type][metric] = end_value - start_value |
124 return memory_stats | 127 return memory_stats |
OLD | NEW |