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

Side by Side Diff: tools/telemetry/telemetry/page/page_benchmark_results.py

Issue 12278015: [Telemetry] Reorganize everything. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add shebangs. Created 7 years, 10 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 (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 from collections import defaultdict 4 from collections import defaultdict
5 from telemetry.page_test import PageTestResults 5
6 from telemetry.perf_tests_helper import PrintPerfResult 6 from telemetry.page import page_test
7 from telemetry.page_benchmark_value import PageBenchmarkValue 7 from telemetry.page import perf_tests_helper
8 from telemetry.page import page_benchmark_value
8 9
9 class ValuesForSinglePage(object): 10 class ValuesForSinglePage(object):
10 def __init__(self, page): 11 def __init__(self, page):
11 self.page = page 12 self.page = page
12 self.values = [] 13 self.values = []
13 14
14 def AddValue(self, value): 15 def AddValue(self, value):
15 self.values.append(value) 16 self.values.append(value)
16 17
17 @property 18 @property
(...skipping 15 matching lines...) Expand all
33 return self.FindValueByTraceName(trace_name) != None 34 return self.FindValueByTraceName(trace_name) != None
34 35
35 def FindValueByTraceName(self, trace_name): 36 def FindValueByTraceName(self, trace_name):
36 values = [value for value in self.values 37 values = [value for value in self.values
37 if value.trace_name == trace_name] 38 if value.trace_name == trace_name]
38 assert len(values) <= 1 39 assert len(values) <= 1
39 if len(values): 40 if len(values):
40 return values[0] 41 return values[0]
41 return None 42 return None
42 43
43 class PageBenchmarkResults(PageTestResults): 44 class PageBenchmarkResults(page_test.PageTestResults):
44 def __init__(self): 45 def __init__(self):
45 super(PageBenchmarkResults, self).__init__() 46 super(PageBenchmarkResults, self).__init__()
46 self._page_results = [] 47 self._page_results = []
47 48
48 self._all_measurements_that_have_been_seen = {} 49 self._all_measurements_that_have_been_seen = {}
49 50
50 self._values_for_current_page = {} 51 self._values_for_current_page = {}
51 52
52 def __getitem__(self, i): 53 def __getitem__(self, i):
53 """Shorthand for self.page_results[i]""" 54 """Shorthand for self.page_results[i]"""
(...skipping 11 matching lines...) Expand all
65 return self._page_results 66 return self._page_results
66 67
67 def WillMeasurePage(self, page): 68 def WillMeasurePage(self, page):
68 self._values_for_current_page = ValuesForSinglePage(page) 69 self._values_for_current_page = ValuesForSinglePage(page)
69 70
70 @property 71 @property
71 def all_measurements_that_have_been_seen(self): 72 def all_measurements_that_have_been_seen(self):
72 return self._all_measurements_that_have_been_seen 73 return self._all_measurements_that_have_been_seen
73 74
74 def Add(self, trace_name, units, value, chart_name=None, data_type='default'): 75 def Add(self, trace_name, units, value, chart_name=None, data_type='default'):
75 value = PageBenchmarkValue(trace_name, units, value, chart_name, data_type) 76 value = page_benchmark_value.PageBenchmarkValue(
77 trace_name, units, value, chart_name, data_type)
76 measurement_name = value.measurement_name 78 measurement_name = value.measurement_name
77 79
78 # Sanity checks. 80 # Sanity checks.
79 assert measurement_name != 'url', 'The name url cannot be used' 81 assert measurement_name != 'url', 'The name url cannot be used'
80 if measurement_name in self._all_measurements_that_have_been_seen: 82 if measurement_name in self._all_measurements_that_have_been_seen:
81 measurement_data = \ 83 measurement_data = \
82 self._all_measurements_that_have_been_seen[measurement_name] 84 self._all_measurements_that_have_been_seen[measurement_name]
83 last_seen_units = measurement_data['units'] 85 last_seen_units = measurement_data['units']
84 last_seen_data_type = measurement_data['type'] 86 last_seen_data_type = measurement_data['type']
85 assert last_seen_units == units, \ 87 assert last_seen_units == units, \
86 'Unit cannot change for a name once it has been provided' 88 'Unit cannot change for a name once it has been provided'
87 assert last_seen_data_type == data_type, \ 89 assert last_seen_data_type == data_type, \
88 'Unit cannot change for a name once it has been provided' 90 'Unit cannot change for a name once it has been provided'
89 else: 91 else:
90 self._all_measurements_that_have_been_seen[measurement_name] = { 92 self._all_measurements_that_have_been_seen[measurement_name] = {
91 'units': units, 93 'units': units,
92 'type': data_type} 94 'type': data_type}
93 95
94 self._values_for_current_page.AddValue(value) 96 self._values_for_current_page.AddValue(value)
95 97
96 def DidMeasurePage(self): 98 def DidMeasurePage(self):
97 assert self._values_for_current_page, 'Failed to call WillMeasurePage' 99 assert self._values_for_current_page, 'Failed to call WillMeasurePage'
98 self._page_results.append(self._values_for_current_page) 100 self._page_results.append(self._values_for_current_page)
99 self._values_for_current_page = None 101 self._values_for_current_page = None
100 102
101 def _PrintPerfResult(self, measurement, trace, values, units, 103 def _PrintPerfResult(self, measurement, trace, values, units,
102 result_type='default'): 104 result_type='default'):
103 PrintPerfResult(measurement, trace, values, units, result_type) 105 perf_tests_helper.PrintPerfResult(
106 measurement, trace, values, units, result_type)
104 107
105 def PrintSummary(self, trace_tag): 108 def PrintSummary(self, trace_tag):
106 if self.page_failures: 109 if self.page_failures:
107 return 110 return
108 111
109 # Build the results summary. 112 # Build the results summary.
110 results_summary = defaultdict(list) 113 results_summary = defaultdict(list)
111 for measurement_name in \ 114 for measurement_name in \
112 self._all_measurements_that_have_been_seen.iterkeys(): 115 self._all_measurements_that_have_been_seen.iterkeys():
113 for page_values in self._page_results: 116 for page_values in self._page_results:
(...skipping 28 matching lines...) Expand all
142 145
143 if not trace_tag: 146 if not trace_tag:
144 for value, url in value_url_list: 147 for value, url in value_url_list:
145 self._PrintPerfResult(measurement + '_by_url', url, [value], units, 148 self._PrintPerfResult(measurement + '_by_url', url, [value], units,
146 by_url_data_type) 149 by_url_data_type)
147 150
148 # For histograms, we don't print the average data, only the _by_url. 151 # For histograms, we don't print the average data, only the _by_url.
149 if not data_type == 'histogram': 152 if not data_type == 'histogram':
150 values = [i[0] for i in value_url_list] 153 values = [i[0] for i in value_url_list]
151 self._PrintPerfResult(measurement, trace, values, units, data_type) 154 self._PrintPerfResult(measurement, trace, values, units, data_type)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/page/page_action.py ('k') | tools/telemetry/telemetry/page/page_benchmark_results_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698