| 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 |