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 math | 5 import math |
6 import os | 6 import os |
7 | 7 |
8 from metrics import power | 8 from metrics import power |
9 from telemetry import benchmark | 9 from telemetry import benchmark |
10 from telemetry import page as page_module | 10 from telemetry import page as page_module |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 collection_name = data['collection'] | 91 collection_name = data['collection'] |
92 AggregateData(aggregated, collection_name, data['mean']) | 92 AggregateData(aggregated, collection_name, data['mean']) |
93 | 93 |
94 for key, value in aggregated.iteritems(): | 94 for key, value in aggregated.iteritems(): |
95 AddResult(key, math.exp(value['sum'] / value['count'])) | 95 AddResult(key, math.exp(value['sum'] / value['count'])) |
96 | 96 |
97 class _DromaeoBenchmark(benchmark.Benchmark): | 97 class _DromaeoBenchmark(benchmark.Benchmark): |
98 """A base class for Dromaeo benchmarks.""" | 98 """A base class for Dromaeo benchmarks.""" |
99 test = _DromaeoMeasurement | 99 test = _DromaeoMeasurement |
100 | 100 |
| 101 @classmethod |
| 102 def Name(cls): |
| 103 return 'dromaeo' |
| 104 |
101 def CreatePageSet(self, options): | 105 def CreatePageSet(self, options): |
102 """Makes a PageSet for Dromaeo benchmarks.""" | 106 """Makes a PageSet for Dromaeo benchmarks.""" |
103 # Subclasses are expected to define class members called query_param and | 107 # Subclasses are expected to define class members called query_param and |
104 # tag. | 108 # tag. |
105 if not hasattr(self, 'query_param') or not hasattr(self, 'tag'): | 109 if not hasattr(self, 'query_param') or not hasattr(self, 'tag'): |
106 raise NotImplementedError('query_param or tag not in Dromaeo benchmark.') | 110 raise NotImplementedError('query_param or tag not in Dromaeo benchmark.') |
107 archive_data_file = '../page_sets/data/dromaeo.%s.json' % self.tag | 111 archive_data_file = '../page_sets/data/dromaeo.%s.json' % self.tag |
108 ps = page_set.PageSet( | 112 ps = page_set.PageSet( |
109 archive_data_file=archive_data_file, | 113 archive_data_file=archive_data_file, |
110 file_path=os.path.abspath(__file__), bucket=page_set.PUBLIC_BUCKET) | 114 file_path=os.path.abspath(__file__), bucket=page_set.PUBLIC_BUCKET) |
111 url = 'http://dromaeo.com?%s' % self.query_param | 115 url = 'http://dromaeo.com?%s' % self.query_param |
112 ps.AddUserStory(page_module.Page( | 116 ps.AddUserStory(page_module.Page( |
113 url, ps, ps.base_dir, make_javascript_deterministic=False)) | 117 url, ps, ps.base_dir, make_javascript_deterministic=False)) |
114 return ps | 118 return ps |
115 | 119 |
116 | 120 |
117 class DromaeoDomCoreAttr(_DromaeoBenchmark): | 121 class DromaeoDomCoreAttr(_DromaeoBenchmark): |
118 """Dromaeo DOMCore attr JavaScript benchmark. | 122 """Dromaeo DOMCore attr JavaScript benchmark. |
119 | 123 |
120 Tests setting and getting DOM node attributes. | 124 Tests setting and getting DOM node attributes. |
121 """ | 125 """ |
122 tag = 'domcoreattr' | 126 tag = 'domcoreattr' |
123 query_param = 'dom-attr' | 127 query_param = 'dom-attr' |
124 | 128 |
| 129 @classmethod |
| 130 def Name(cls): |
| 131 return 'dromaeo.domcoreattr' |
| 132 |
125 | 133 |
126 class DromaeoDomCoreModify(_DromaeoBenchmark): | 134 class DromaeoDomCoreModify(_DromaeoBenchmark): |
127 """Dromaeo DOMCore modify JavaScript benchmark. | 135 """Dromaeo DOMCore modify JavaScript benchmark. |
128 | 136 |
129 Tests creating and injecting DOM nodes. | 137 Tests creating and injecting DOM nodes. |
130 """ | 138 """ |
131 tag = 'domcoremodify' | 139 tag = 'domcoremodify' |
132 query_param = 'dom-modify' | 140 query_param = 'dom-modify' |
133 | 141 |
| 142 @classmethod |
| 143 def Name(cls): |
| 144 return 'dromaeo.domcoremodify' |
| 145 |
134 | 146 |
135 class DromaeoDomCoreQuery(_DromaeoBenchmark): | 147 class DromaeoDomCoreQuery(_DromaeoBenchmark): |
136 """Dromaeo DOMCore query JavaScript benchmark. | 148 """Dromaeo DOMCore query JavaScript benchmark. |
137 | 149 |
138 Tests querying DOM elements in a document. | 150 Tests querying DOM elements in a document. |
139 """ | 151 """ |
140 tag = 'domcorequery' | 152 tag = 'domcorequery' |
141 query_param = 'dom-query' | 153 query_param = 'dom-query' |
142 | 154 |
| 155 @classmethod |
| 156 def Name(cls): |
| 157 return 'dromaeo.domcorequery' |
| 158 |
143 | 159 |
144 class DromaeoDomCoreTraverse(_DromaeoBenchmark): | 160 class DromaeoDomCoreTraverse(_DromaeoBenchmark): |
145 """Dromaeo DOMCore traverse JavaScript benchmark. | 161 """Dromaeo DOMCore traverse JavaScript benchmark. |
146 | 162 |
147 Tests traversing a DOM structure. | 163 Tests traversing a DOM structure. |
148 """ | 164 """ |
149 tag = 'domcoretraverse' | 165 tag = 'domcoretraverse' |
150 query_param = 'dom-traverse' | 166 query_param = 'dom-traverse' |
151 | 167 |
| 168 @classmethod |
| 169 def Name(cls): |
| 170 return 'dromaeo.domcoretraverse' |
| 171 |
152 | 172 |
153 class DromaeoJslibAttrJquery(_DromaeoBenchmark): | 173 class DromaeoJslibAttrJquery(_DromaeoBenchmark): |
154 """Dromaeo JSLib attr jquery JavaScript benchmark. | 174 """Dromaeo JSLib attr jquery JavaScript benchmark. |
155 | 175 |
156 Tests setting and getting DOM node attributes using the jQuery JavaScript | 176 Tests setting and getting DOM node attributes using the jQuery JavaScript |
157 Library. | 177 Library. |
158 """ | 178 """ |
159 tag = 'jslibattrjquery' | 179 tag = 'jslibattrjquery' |
160 query_param = 'jslib-attr-jquery' | 180 query_param = 'jslib-attr-jquery' |
161 | 181 |
| 182 @classmethod |
| 183 def Name(cls): |
| 184 return 'dromaeo.jslibattrjquery' |
| 185 |
162 | 186 |
163 class DromaeoJslibAttrPrototype(_DromaeoBenchmark): | 187 class DromaeoJslibAttrPrototype(_DromaeoBenchmark): |
164 """Dromaeo JSLib attr prototype JavaScript benchmark. | 188 """Dromaeo JSLib attr prototype JavaScript benchmark. |
165 | 189 |
166 Tests setting and getting DOM node attributes using the jQuery JavaScript | 190 Tests setting and getting DOM node attributes using the jQuery JavaScript |
167 Library. | 191 Library. |
168 """ | 192 """ |
169 tag = 'jslibattrprototype' | 193 tag = 'jslibattrprototype' |
170 query_param = 'jslib-attr-prototype' | 194 query_param = 'jslib-attr-prototype' |
171 | 195 |
| 196 @classmethod |
| 197 def Name(cls): |
| 198 return 'dromaeo.jslibattrprototype' |
| 199 |
172 | 200 |
173 class DromaeoJslibEventJquery(_DromaeoBenchmark): | 201 class DromaeoJslibEventJquery(_DromaeoBenchmark): |
174 """Dromaeo JSLib event jquery JavaScript benchmark. | 202 """Dromaeo JSLib event jquery JavaScript benchmark. |
175 | 203 |
176 Tests binding, removing, and triggering DOM events using the jQuery JavaScript | 204 Tests binding, removing, and triggering DOM events using the jQuery JavaScript |
177 Library. | 205 Library. |
178 """ | 206 """ |
179 tag = 'jslibeventjquery' | 207 tag = 'jslibeventjquery' |
180 query_param = 'jslib-event-jquery' | 208 query_param = 'jslib-event-jquery' |
181 | 209 |
| 210 @classmethod |
| 211 def Name(cls): |
| 212 return 'dromaeo.jslibeventjquery' |
| 213 |
182 | 214 |
183 class DromaeoJslibEventPrototype(_DromaeoBenchmark): | 215 class DromaeoJslibEventPrototype(_DromaeoBenchmark): |
184 """Dromaeo JSLib event prototype JavaScript benchmark. | 216 """Dromaeo JSLib event prototype JavaScript benchmark. |
185 | 217 |
186 Tests binding, removing, and triggering DOM events using the Prototype | 218 Tests binding, removing, and triggering DOM events using the Prototype |
187 JavaScript Library. | 219 JavaScript Library. |
188 """ | 220 """ |
189 tag = 'jslibeventprototype' | 221 tag = 'jslibeventprototype' |
190 query_param = 'jslib-event-prototype' | 222 query_param = 'jslib-event-prototype' |
191 | 223 |
| 224 @classmethod |
| 225 def Name(cls): |
| 226 return 'dromaeo.jslibeventprototype' |
| 227 |
192 | 228 |
193 @benchmark.Disabled('xp') # crbug.com/389731 | 229 @benchmark.Disabled('xp') # crbug.com/389731 |
194 class DromaeoJslibModifyJquery(_DromaeoBenchmark): | 230 class DromaeoJslibModifyJquery(_DromaeoBenchmark): |
195 """Dromaeo JSLib modify jquery JavaScript benchmark. | 231 """Dromaeo JSLib modify jquery JavaScript benchmark. |
196 | 232 |
197 Tests creating and injecting DOM nodes into a document using the jQuery | 233 Tests creating and injecting DOM nodes into a document using the jQuery |
198 JavaScript Library. | 234 JavaScript Library. |
199 """ | 235 """ |
200 tag = 'jslibmodifyjquery' | 236 tag = 'jslibmodifyjquery' |
201 query_param = 'jslib-modify-jquery' | 237 query_param = 'jslib-modify-jquery' |
202 | 238 |
| 239 @classmethod |
| 240 def Name(cls): |
| 241 return 'dromaeo.jslibmodifyjquery' |
| 242 |
203 | 243 |
204 class DromaeoJslibModifyPrototype(_DromaeoBenchmark): | 244 class DromaeoJslibModifyPrototype(_DromaeoBenchmark): |
205 """Dromaeo JSLib modify prototype JavaScript benchmark. | 245 """Dromaeo JSLib modify prototype JavaScript benchmark. |
206 | 246 |
207 Tests creating and injecting DOM nodes into a document using the Prototype | 247 Tests creating and injecting DOM nodes into a document using the Prototype |
208 JavaScript Library. | 248 JavaScript Library. |
209 """ | 249 """ |
210 tag = 'jslibmodifyprototype' | 250 tag = 'jslibmodifyprototype' |
211 query_param = 'jslib-modify-prototype' | 251 query_param = 'jslib-modify-prototype' |
212 | 252 |
| 253 @classmethod |
| 254 def Name(cls): |
| 255 return 'dromaeo.jslibmodifyprototype' |
| 256 |
213 | 257 |
214 class DromaeoJslibStyleJquery(_DromaeoBenchmark): | 258 class DromaeoJslibStyleJquery(_DromaeoBenchmark): |
215 """Dromaeo JSLib style jquery JavaScript benchmark. | 259 """Dromaeo JSLib style jquery JavaScript benchmark. |
216 | 260 |
217 Tests getting and setting CSS information on DOM elements using the jQuery | 261 Tests getting and setting CSS information on DOM elements using the jQuery |
218 JavaScript Library. | 262 JavaScript Library. |
219 """ | 263 """ |
220 tag = 'jslibstylejquery' | 264 tag = 'jslibstylejquery' |
221 query_param = 'jslib-style-jquery' | 265 query_param = 'jslib-style-jquery' |
222 | 266 |
| 267 @classmethod |
| 268 def Name(cls): |
| 269 return 'dromaeo.jslibstylejquery' |
| 270 |
223 | 271 |
224 class DromaeoJslibStylePrototype(_DromaeoBenchmark): | 272 class DromaeoJslibStylePrototype(_DromaeoBenchmark): |
225 """Dromaeo JSLib style prototype JavaScript benchmark. | 273 """Dromaeo JSLib style prototype JavaScript benchmark. |
226 | 274 |
227 Tests getting and setting CSS information on DOM elements using the jQuery | 275 Tests getting and setting CSS information on DOM elements using the jQuery |
228 JavaScript Library. | 276 JavaScript Library. |
229 """ | 277 """ |
230 tag = 'jslibstyleprototype' | 278 tag = 'jslibstyleprototype' |
231 query_param = 'jslib-style-prototype' | 279 query_param = 'jslib-style-prototype' |
232 | 280 |
| 281 @classmethod |
| 282 def Name(cls): |
| 283 return 'dromaeo.jslibstyleprototype' |
| 284 |
233 | 285 |
234 class DromaeoJslibTraverseJquery(_DromaeoBenchmark): | 286 class DromaeoJslibTraverseJquery(_DromaeoBenchmark): |
235 """Dromaeo JSLib traverse jquery JavaScript benchmark. | 287 """Dromaeo JSLib traverse jquery JavaScript benchmark. |
236 | 288 |
237 | 289 |
238 Tests getting and setting CSS information on DOM elements using the Prototype | 290 Tests getting and setting CSS information on DOM elements using the Prototype |
239 JavaScript Library. | 291 JavaScript Library. |
240 """ | 292 """ |
241 tag = 'jslibtraversejquery' | 293 tag = 'jslibtraversejquery' |
242 query_param = 'jslib-traverse-jquery' | 294 query_param = 'jslib-traverse-jquery' |
243 | 295 |
| 296 @classmethod |
| 297 def Name(cls): |
| 298 return 'dromaeo.jslibtraversejquery' |
| 299 |
244 | 300 |
245 class DromaeoJslibTraversePrototype(_DromaeoBenchmark): | 301 class DromaeoJslibTraversePrototype(_DromaeoBenchmark): |
246 """Dromaeo JSLib traverse prototype JavaScript benchmark. | 302 """Dromaeo JSLib traverse prototype JavaScript benchmark. |
247 | 303 |
248 Tests traversing a DOM structure using the jQuery JavaScript Library. | 304 Tests traversing a DOM structure using the jQuery JavaScript Library. |
249 """ | 305 """ |
250 tag = 'jslibtraverseprototype' | 306 tag = 'jslibtraverseprototype' |
251 query_param = 'jslib-traverse-prototype' | 307 query_param = 'jslib-traverse-prototype' |
252 | 308 |
| 309 @classmethod |
| 310 def Name(cls): |
| 311 return 'dromaeo.jslibtraverseprototype' |
| 312 |
253 | 313 |
254 class DromaeoCSSQueryJquery(_DromaeoBenchmark): | 314 class DromaeoCSSQueryJquery(_DromaeoBenchmark): |
255 """Dromaeo CSS Query jquery JavaScript benchmark. | 315 """Dromaeo CSS Query jquery JavaScript benchmark. |
256 | 316 |
257 Tests traversing a DOM structure using the Prototype JavaScript Library. | 317 Tests traversing a DOM structure using the Prototype JavaScript Library. |
258 """ | 318 """ |
259 tag = 'cssqueryjquery' | 319 tag = 'cssqueryjquery' |
260 query_param = 'cssquery-jquery' | 320 query_param = 'cssquery-jquery' |
261 | 321 |
| 322 @classmethod |
| 323 def Name(cls): |
| 324 return 'dromaeo.cssqueryjquery' |
| 325 |
OLD | NEW |