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 Metric | 7 from metrics import Metric |
8 from metrics import histogram | 8 from metrics import histogram |
9 | 9 |
10 _HISTOGRAMS = [ | 10 _HISTOGRAMS = [ |
(...skipping 23 matching lines...) Expand all Loading... | |
34 self._histogram_start_values = dict() | 34 self._histogram_start_values = dict() |
35 self._histogram_delta_values = dict() | 35 self._histogram_delta_values = dict() |
36 | 36 |
37 def Start(self, page, tab): | 37 def Start(self, page, tab): |
38 """Start the per-page preparation for this metric. | 38 """Start the per-page preparation for this metric. |
39 | 39 |
40 Here, this consists of recording the start value of all the histograms. | 40 Here, this consists of recording the start value of all the histograms. |
41 """ | 41 """ |
42 for h in _HISTOGRAMS: | 42 for h in _HISTOGRAMS: |
43 histogram_data = histogram.GetHistogramData(h['type'], h['name'], tab) | 43 histogram_data = histogram.GetHistogramData(h['type'], h['name'], tab) |
44 # Histogram data may not be available | |
qyearsley
2013/08/12 20:57:48
Not sure if it's best not to repeat this comment b
| |
44 if not histogram_data: | 45 if not histogram_data: |
45 continue | 46 continue |
46 self._histogram_start_values[h['name']] = histogram_data | 47 self._histogram_start_values[h['name']] = histogram_data |
47 | 48 |
48 def Stop(self, page, tab): | 49 def Stop(self, page, tab): |
49 """Prepare the results for this page. | 50 """Prepare the results for this page. |
50 | 51 |
51 The results are the differences between the current histogram values | 52 The results are the differences between the current histogram values |
52 and the values when Start() was called. | 53 and the values when Start() was called. |
53 """ | 54 """ |
54 assert self._histogram_start_values, 'Must call Start() first' | 55 assert self._histogram_start_values, 'Must call Start() first' |
55 for h in _HISTOGRAMS: | 56 for h in _HISTOGRAMS: |
57 # Histogram data may not be available | |
58 if h['name'] not in self._histogram_start_values: | |
59 continue | |
56 histogram_data = histogram.GetHistogramData(h['type'], h['name'], tab) | 60 histogram_data = histogram.GetHistogramData(h['type'], h['name'], tab) |
57 self._histogram_delta_values = histogram.SubtractHistogram( | 61 self._histogram_delta_values[h['name']] = histogram.SubtractHistogram( |
qyearsley
2013/08/12 20:57:48
I forgot to use self._histogram_delta_values as a
| |
58 histogram_data, self._histogram_start_values[h['name']]) | 62 histogram_data, self._histogram_start_values[h['name']]) |
qyearsley
2013/08/12 20:57:48
Here (and in AddResults) I'm assuming that if hist
| |
59 | 63 |
60 def AddResults(self, tab, results): | 64 def AddResults(self, tab, results): |
61 """Add results for this page to the results object.""" | 65 """Add results for this page to the results object.""" |
62 assert self._histogram_delta_values, 'Must call Stop() first' | 66 assert self._histogram_delta_values, 'Must call Stop() first' |
63 for h in _HISTOGRAMS: | 67 for h in _HISTOGRAMS: |
68 # Histogram data may not be available | |
69 if h['name'] not in self._histogram_delta_values: | |
70 continue | |
64 histogram_data = self._histogram_delta_values[h['name']] | 71 histogram_data = self._histogram_delta_values[h['name']] |
65 results.Add(h['name'], h['units'], histogram_data, | 72 results.Add(h['name'], h['units'], histogram_data, |
66 data_type='unimportant-histogram') | 73 data_type='unimportant-histogram') |
67 | 74 |
68 def AddSummaryResults(self, results): | 75 def AddSummaryResults(self, results): |
69 """Add summary (overall) results to the results object.""" | 76 """Add summary (overall) results to the results object.""" |
70 self._end_memory_stats = self._browser.memory_stats | 77 self._end_memory_stats = self._browser.memory_stats |
71 if not self._end_memory_stats['Browser']: | 78 if not self._end_memory_stats['Browser']: |
72 return | 79 return |
73 | 80 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
112 AddSummariesForProcessTypes(['Gpu'], 'gpu') | 119 AddSummariesForProcessTypes(['Gpu'], 'gpu') |
113 AddSummariesForProcessTypes(['Browser', 'Renderer', 'Gpu'], 'total') | 120 AddSummariesForProcessTypes(['Browser', 'Renderer', 'Gpu'], 'total') |
114 | 121 |
115 end_commit_charge = self._end_memory_stats['SystemCommitCharge'] | 122 end_commit_charge = self._end_memory_stats['SystemCommitCharge'] |
116 commit_charge_difference = end_commit_charge - self._start_commit_charge | 123 commit_charge_difference = end_commit_charge - self._start_commit_charge |
117 results.AddSummary('commit_charge', 'kb', commit_charge_difference, | 124 results.AddSummary('commit_charge', 'kb', commit_charge_difference, |
118 data_type='unimportant') | 125 data_type='unimportant') |
119 results.AddSummary('processes', 'count', self._memory_stats['ProcessCount'], | 126 results.AddSummary('processes', 'count', self._memory_stats['ProcessCount'], |
120 data_type='unimportant') | 127 data_type='unimportant') |
121 | 128 |
OLD | NEW |