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