Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: tools/perf/metrics/memory.py

Issue 22754003: Refactor BenchmarkResult.Add to take enum for data_type (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698