OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 sys | 5 import sys |
6 | 6 |
7 from metrics import histogram_util | 7 from metrics import histogram_util |
8 from metrics import Metric | 8 from metrics import Metric |
| 9 from telemetry.page import result_data_type |
9 | 10 |
10 _HISTOGRAMS = [ | 11 _HISTOGRAMS = [ |
11 {'name': 'V8.MemoryExternalFragmentationTotal', 'units': 'percent', | 12 {'name': 'V8.MemoryExternalFragmentationTotal', 'units': 'percent', |
12 'type': histogram_util.RENDERER_HISTOGRAM}, | 13 'type': histogram_util.RENDERER_HISTOGRAM}, |
13 {'name': 'V8.MemoryHeapSampleTotalCommitted', 'units': 'kb', | 14 {'name': 'V8.MemoryHeapSampleTotalCommitted', 'units': 'kb', |
14 'type': histogram_util.RENDERER_HISTOGRAM}, | 15 'type': histogram_util.RENDERER_HISTOGRAM}, |
15 {'name': 'V8.MemoryHeapSampleTotalUsed', 'units': 'kb', | 16 {'name': 'V8.MemoryHeapSampleTotalUsed', 'units': 'kb', |
16 'type': histogram_util.RENDERER_HISTOGRAM}, | 17 'type': histogram_util.RENDERER_HISTOGRAM}, |
17 {'name': 'Memory.RendererUsed', 'units': 'kb', | 18 {'name': 'Memory.RendererUsed', 'units': 'kb', |
18 'type': histogram_util.RENDERER_HISTOGRAM}, | 19 'type': histogram_util.RENDERER_HISTOGRAM}, |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 histogram_data, self._histogram_start[h['name']]) | 65 histogram_data, self._histogram_start[h['name']]) |
65 | 66 |
66 def AddResults(self, tab, results): | 67 def AddResults(self, tab, results): |
67 """Add results for this page to the results object.""" | 68 """Add results for this page to the results object.""" |
68 assert self._histogram_delta, 'Must call Stop() first' | 69 assert self._histogram_delta, 'Must call Stop() first' |
69 for h in _HISTOGRAMS: | 70 for h in _HISTOGRAMS: |
70 # Histogram data may not be available | 71 # Histogram data may not be available |
71 if h['name'] not in self._histogram_start: | 72 if h['name'] not in self._histogram_start: |
72 continue | 73 continue |
73 results.Add(h['name'], h['units'], self._histogram_delta[h['name']], | 74 results.Add(h['name'], h['units'], self._histogram_delta[h['name']], |
74 data_type='unimportant-histogram') | 75 data_type=result_data_type.UNIMPORTANT_HISTOGRAM) |
75 | 76 |
76 def AddSummaryResults(self, results): | 77 def AddSummaryResults(self, results): |
77 """Add summary (overall) results to the results object.""" | 78 """Add summary (overall) results to the results object.""" |
78 self._memory_stats = self._browser.memory_stats | 79 self._memory_stats = self._browser.memory_stats |
79 if not self._memory_stats['Browser']: | 80 if not self._memory_stats['Browser']: |
80 return | 81 return |
81 | 82 |
82 metric = 'resident_set_size' | 83 metric = 'resident_set_size' |
83 if sys.platform == 'win32': | 84 if sys.platform == 'win32': |
84 metric = 'working_set' | 85 metric = 'working_set' |
(...skipping 14 matching lines...) Expand all Loading... |
99 """ | 100 """ |
100 if len(process_types_memory) > 1 and value_name_memory.endswith('Peak'): | 101 if len(process_types_memory) > 1 and value_name_memory.endswith('Peak'): |
101 return | 102 return |
102 values = [] | 103 values = [] |
103 for process_type_memory in process_types_memory: | 104 for process_type_memory in process_types_memory: |
104 stats = self._memory_stats[process_type_memory] | 105 stats = self._memory_stats[process_type_memory] |
105 if value_name_memory in stats: | 106 if value_name_memory in stats: |
106 values.append(stats[value_name_memory]) | 107 values.append(stats[value_name_memory]) |
107 if values: | 108 if values: |
108 results.AddSummary(value_name_trace + process_type_trace, | 109 results.AddSummary(value_name_trace + process_type_trace, |
109 'bytes', sum(values), data_type='unimportant') | 110 'bytes', sum(values), |
| 111 data_type=result_data_type.UNIMPORTANT_HISTOGRAM) |
110 | 112 |
111 AddSummary('VM', 'vm_final_size_') | 113 AddSummary('VM', 'vm_final_size_') |
112 AddSummary('WorkingSetSize', 'vm_%s_final_size_' % metric) | 114 AddSummary('WorkingSetSize', 'vm_%s_final_size_' % metric) |
113 AddSummary('PrivateDirty', 'vm_private_dirty_final_') | 115 AddSummary('PrivateDirty', 'vm_private_dirty_final_') |
114 AddSummary('ProportionalSetSize', 'vm_proportional_set_size_final_') | 116 AddSummary('ProportionalSetSize', 'vm_proportional_set_size_final_') |
115 AddSummary('VMPeak', 'vm_peak_size_') | 117 AddSummary('VMPeak', 'vm_peak_size_') |
116 AddSummary('WorkingSetSizePeak', '%s_peak_size_' % metric) | 118 AddSummary('WorkingSetSizePeak', '%s_peak_size_' % metric) |
117 | 119 |
118 AddSummariesForProcessTypes(['Browser'], 'browser') | 120 AddSummariesForProcessTypes(['Browser'], 'browser') |
119 AddSummariesForProcessTypes(['Renderer'], 'renderer') | 121 AddSummariesForProcessTypes(['Renderer'], 'renderer') |
120 AddSummariesForProcessTypes(['Gpu'], 'gpu') | 122 AddSummariesForProcessTypes(['Gpu'], 'gpu') |
121 AddSummariesForProcessTypes(['Browser', 'Renderer', 'Gpu'], 'total') | 123 AddSummariesForProcessTypes(['Browser', 'Renderer', 'Gpu'], 'total') |
122 | 124 |
123 end_commit_charge = self._memory_stats['SystemCommitCharge'] | 125 end_commit_charge = self._memory_stats['SystemCommitCharge'] |
124 commit_charge_difference = end_commit_charge - self._start_commit_charge | 126 commit_charge_difference = end_commit_charge - self._start_commit_charge |
125 results.AddSummary('commit_charge', 'kb', commit_charge_difference, | 127 results.AddSummary('commit_charge', 'kb', commit_charge_difference, |
126 data_type='unimportant') | 128 data_type=result_data_type.UNIMPORTANT) |
127 results.AddSummary('processes', 'count', self._memory_stats['ProcessCount'], | 129 results.AddSummary('processes', 'count', self._memory_stats['ProcessCount'], |
128 data_type='unimportant') | 130 data_type=result_data_type.UNIMPORTANT) |
129 | 131 |
OLD | NEW |