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 os | 5 import os |
6 | 6 |
7 from core import path_util | 7 from core import path_util |
8 from core import perf_benchmark | 8 from core import perf_benchmark |
9 | 9 |
10 from telemetry import benchmark | 10 from telemetry import benchmark |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 """Measures blink perf with the new paint invalidation system (see: | 123 """Measures blink perf with the new paint invalidation system (see: |
124 https://goo.gl/eQczQW). The benchmarks using this measurement should be | 124 https://goo.gl/eQczQW). The benchmarks using this measurement should be |
125 removed when slimming paint invalidation ships.""" | 125 removed when slimming paint invalidation ships.""" |
126 def CustomizeBrowserOptions(self, options): | 126 def CustomizeBrowserOptions(self, options): |
127 _BlinkPerfMeasurement.CustomizeBrowserOptions(self, options) | 127 _BlinkPerfMeasurement.CustomizeBrowserOptions(self, options) |
128 options.AppendExtraBrowserArgs([ | 128 options.AppendExtraBrowserArgs([ |
129 '--enable-blink-features=SlimmingPaintInvalidation' | 129 '--enable-blink-features=SlimmingPaintInvalidation' |
130 ]) | 130 ]) |
131 | 131 |
132 | 132 |
| 133 class _BlinkPerfBenchmark(perf_benchmark.PerfBenchmark): |
| 134 test = _BlinkPerfMeasurement |
| 135 |
| 136 @classmethod |
| 137 def Name(cls): |
| 138 return 'blink_perf.' + cls.tag |
| 139 |
| 140 def CreateStorySet(self, options): |
| 141 path = os.path.join(BLINK_PERF_BASE_DIR, self.subdir) |
| 142 return CreateStorySetFromPath(path, SKIPPED_FILE) |
| 143 |
| 144 |
133 class _SharedPywebsocketPageState(shared_page_state.SharedPageState): | 145 class _SharedPywebsocketPageState(shared_page_state.SharedPageState): |
134 """Runs a pywebsocket server.""" | 146 """Runs a pywebsocket server.""" |
135 | 147 |
136 def __init__(self, test, finder_options, user_story_set): | 148 def __init__(self, test, finder_options, user_story_set): |
137 super(_SharedPywebsocketPageState, self).__init__( | 149 super(_SharedPywebsocketPageState, self).__init__( |
138 test, finder_options, user_story_set) | 150 test, finder_options, user_story_set) |
139 self.platform.StartLocalServer(pywebsocket_server.PywebsocketServer()) | 151 self.platform.StartLocalServer(pywebsocket_server.PywebsocketServer()) |
140 | 152 |
141 | 153 |
142 @benchmark.Disabled('all') # http://crbug.com/670069 | 154 @benchmark.Disabled('all') # http://crbug.com/670069 |
143 class BlinkPerfBindings(perf_benchmark.PerfBenchmark): | 155 class BlinkPerfBindings(_BlinkPerfBenchmark): |
144 tag = 'bindings' | 156 tag = 'bindings' |
145 test = _BlinkPerfMeasurement | 157 subdir = 'Bindings' |
146 | |
147 @classmethod | |
148 def Name(cls): | |
149 return 'blink_perf.bindings' | |
150 | |
151 def CreateStorySet(self, options): | |
152 path = os.path.join(BLINK_PERF_BASE_DIR, 'Bindings') | |
153 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
154 | 158 |
155 @classmethod | 159 @classmethod |
156 def ShouldDisable(cls, possible_browser): | 160 def ShouldDisable(cls, possible_browser): |
157 # http://crbug.com/563979 | 161 # http://crbug.com/563979 |
158 return (cls.IsSvelte(possible_browser) | 162 return (cls.IsSvelte(possible_browser) |
159 # http://crbug.com/653970 | 163 # http://crbug.com/653970 |
160 or (possible_browser.browser_type == 'reference' and | 164 or (possible_browser.browser_type == 'reference' and |
161 possible_browser.platform.GetOSName() == 'android')) | 165 possible_browser.platform.GetOSName() == 'android')) |
162 | 166 |
163 | 167 |
164 @benchmark.Enabled('content-shell') | 168 @benchmark.Enabled('content-shell') |
165 class BlinkPerfBlinkGC(perf_benchmark.PerfBenchmark): | 169 class BlinkPerfBlinkGC(_BlinkPerfBenchmark): |
166 tag = 'blink_gc' | 170 tag = 'blink_gc' |
167 test = _BlinkPerfMeasurement | 171 subdir = 'BlinkGC' |
168 | |
169 @classmethod | |
170 def Name(cls): | |
171 return 'blink_perf.blink_gc' | |
172 | |
173 def CreateStorySet(self, options): | |
174 path = os.path.join(BLINK_PERF_BASE_DIR, 'BlinkGC') | |
175 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
176 | 172 |
177 | 173 |
178 class BlinkPerfCSS(perf_benchmark.PerfBenchmark): | 174 class BlinkPerfCSS(_BlinkPerfBenchmark): |
179 tag = 'css' | 175 tag = 'css' |
180 test = _BlinkPerfMeasurement | 176 subdir = 'CSS' |
181 | |
182 @classmethod | |
183 def Name(cls): | |
184 return 'blink_perf.css' | |
185 | |
186 def CreateStorySet(self, options): | |
187 path = os.path.join(BLINK_PERF_BASE_DIR, 'CSS') | |
188 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
189 | 177 |
190 | 178 |
191 @benchmark.Disabled('android-webview', # http://crbug.com/593200 | 179 @benchmark.Disabled('android-webview', # http://crbug.com/593200 |
192 'reference') # http://crbug.com/576779 | 180 'reference') # http://crbug.com/576779 |
193 class BlinkPerfCanvas(perf_benchmark.PerfBenchmark): | 181 class BlinkPerfCanvas(_BlinkPerfBenchmark): |
194 tag = 'canvas' | 182 tag = 'canvas' |
195 test = _BlinkPerfMeasurement | 183 subdir = 'Canvas' |
196 | 184 |
197 @classmethod | 185 @classmethod |
198 def ShouldDisable(cls, possible_browser): | 186 def ShouldDisable(cls, possible_browser): |
199 return cls.IsSvelte(possible_browser) # http://crbug.com/593973. | 187 return cls.IsSvelte(possible_browser) # http://crbug.com/593973. |
200 | 188 |
201 @classmethod | |
202 def Name(cls): | |
203 return 'blink_perf.canvas' | |
204 | |
205 def CreateStorySet(self, options): | 189 def CreateStorySet(self, options): |
206 path = os.path.join(BLINK_PERF_BASE_DIR, 'Canvas') | 190 path = os.path.join(BLINK_PERF_BASE_DIR, self.subdir) |
207 story_set = CreateStorySetFromPath( | 191 story_set = CreateStorySetFromPath( |
208 path, SKIPPED_FILE, | 192 path, SKIPPED_FILE, |
209 shared_page_state_class=( | 193 shared_page_state_class=( |
210 webgl_supported_shared_state.WebGLSupportedSharedState)) | 194 webgl_supported_shared_state.WebGLSupportedSharedState)) |
211 # WebGLSupportedSharedState requires the skipped_gpus property to | 195 # WebGLSupportedSharedState requires the skipped_gpus property to |
212 # be set on each page. | 196 # be set on each page. |
213 for page in story_set: | 197 for page in story_set: |
214 page.skipped_gpus = [] | 198 page.skipped_gpus = [] |
215 return story_set | 199 return story_set |
216 | 200 |
217 | 201 |
218 class BlinkPerfDOM(perf_benchmark.PerfBenchmark): | 202 class BlinkPerfDOM(_BlinkPerfBenchmark): |
219 tag = 'dom' | 203 tag = 'dom' |
220 test = _BlinkPerfMeasurement | 204 subdir = 'DOM' |
221 | |
222 @classmethod | |
223 def Name(cls): | |
224 return 'blink_perf.dom' | |
225 | |
226 def CreateStorySet(self, options): | |
227 path = os.path.join(BLINK_PERF_BASE_DIR, 'DOM') | |
228 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
229 | 205 |
230 | 206 |
231 @benchmark.Disabled('win') # http://crbug.com/588819 | 207 @benchmark.Disabled('win') # http://crbug.com/588819 |
232 class BlinkPerfEvents(perf_benchmark.PerfBenchmark): | 208 class BlinkPerfEvents(_BlinkPerfBenchmark): |
233 tag = 'events' | 209 tag = 'events' |
234 test = _BlinkPerfMeasurement | 210 subdir = 'Events' |
235 | |
236 @classmethod | |
237 def Name(cls): | |
238 return 'blink_perf.events' | |
239 | |
240 def CreateStorySet(self, options): | |
241 path = os.path.join(BLINK_PERF_BASE_DIR, 'Events') | |
242 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
243 | 211 |
244 | 212 |
245 @benchmark.Disabled('win8') # http://crbug.com/462350 | 213 @benchmark.Disabled('win8') # http://crbug.com/462350 |
246 @benchmark.Disabled('win-reference') # http://crbug.com/642884 | 214 @benchmark.Disabled('win-reference') # http://crbug.com/642884 |
247 class BlinkPerfLayout(perf_benchmark.PerfBenchmark): | 215 class BlinkPerfLayout(_BlinkPerfBenchmark): |
248 tag = 'layout' | 216 tag = 'layout' |
249 test = _BlinkPerfMeasurement | 217 subdir = 'Layout' |
250 | |
251 @classmethod | |
252 def Name(cls): | |
253 return 'blink_perf.layout' | |
254 | |
255 def CreateStorySet(self, options): | |
256 path = os.path.join(BLINK_PERF_BASE_DIR, 'Layout') | |
257 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
258 | 218 |
259 @classmethod | 219 @classmethod |
260 def ShouldDisable(cls, possible_browser): | 220 def ShouldDisable(cls, possible_browser): |
261 return cls.IsSvelte(possible_browser) # http://crbug.com/551950 | 221 return cls.IsSvelte(possible_browser) # http://crbug.com/551950 |
262 | 222 |
263 | 223 |
264 class BlinkPerfPaint(perf_benchmark.PerfBenchmark): | 224 class BlinkPerfPaint(_BlinkPerfBenchmark): |
265 tag = 'paint' | 225 tag = 'paint' |
266 test = _BlinkPerfMeasurement | 226 subdir = 'Paint' |
267 | |
268 @classmethod | |
269 def Name(cls): | |
270 return 'blink_perf.paint' | |
271 | |
272 def CreateStorySet(self, options): | |
273 path = os.path.join(BLINK_PERF_BASE_DIR, 'Paint') | |
274 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
275 | 227 |
276 @classmethod | 228 @classmethod |
277 def ShouldDisable(cls, possible_browser): | 229 def ShouldDisable(cls, possible_browser): |
278 return cls.IsSvelte(possible_browser) # http://crbug.com/574483 | 230 return cls.IsSvelte(possible_browser) # http://crbug.com/574483 |
279 | 231 |
280 | 232 |
281 class BlinkPerfPaintSlimmingPaintInvalidation(BlinkPerfPaint): | 233 class BlinkPerfPaintSlimmingPaintInvalidation(BlinkPerfPaint): |
282 tag = 'paint_slimmingpaintinvalidation' | 234 tag = 'paint_slimmingpaintinvalidation' |
283 test = _BlinkPerfMeasurementSlimmingPaintInvalidation | 235 test = _BlinkPerfMeasurementSlimmingPaintInvalidation |
284 | 236 |
285 @classmethod | 237 |
286 def Name(cls): | 238 @benchmark.Disabled('win') # crbug.com/488493 |
287 return 'blink_perf.paint_slimmingpaintinvalidation' | 239 class BlinkPerfParser(_BlinkPerfBenchmark): |
| 240 tag = 'parser' |
| 241 subdir = 'Parser' |
288 | 242 |
289 | 243 |
290 @benchmark.Disabled('win') # crbug.com/488493 | 244 class BlinkPerfSVG(_BlinkPerfBenchmark): |
291 class BlinkPerfParser(perf_benchmark.PerfBenchmark): | |
292 tag = 'parser' | |
293 test = _BlinkPerfMeasurement | |
294 | |
295 @classmethod | |
296 def Name(cls): | |
297 return 'blink_perf.parser' | |
298 | |
299 def CreateStorySet(self, options): | |
300 path = os.path.join(BLINK_PERF_BASE_DIR, 'Parser') | |
301 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
302 | |
303 | |
304 class BlinkPerfSVG(perf_benchmark.PerfBenchmark): | |
305 tag = 'svg' | 245 tag = 'svg' |
306 test = _BlinkPerfMeasurement | 246 subdir = 'SVG' |
307 | |
308 @classmethod | |
309 def Name(cls): | |
310 return 'blink_perf.svg' | |
311 | |
312 def CreateStorySet(self, options): | |
313 path = os.path.join(BLINK_PERF_BASE_DIR, 'SVG') | |
314 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
315 | 247 |
316 | 248 |
317 class BlinkPerfSVGSlimmingPaintInvalidation(BlinkPerfSVG): | 249 class BlinkPerfSVGSlimmingPaintInvalidation(BlinkPerfSVG): |
318 tag = 'svg_slimmingpaintinvalidation' | 250 tag = 'svg_slimmingpaintinvalidation' |
319 test = _BlinkPerfMeasurementSlimmingPaintInvalidation | 251 test = _BlinkPerfMeasurementSlimmingPaintInvalidation |
320 | 252 |
321 @classmethod | |
322 def Name(cls): | |
323 return 'blink_perf.svg_slimmingpaintinvalidation' | |
324 | 253 |
325 | 254 class BlinkPerfShadowDOM(_BlinkPerfBenchmark): |
326 class BlinkPerfShadowDOM(perf_benchmark.PerfBenchmark): | |
327 tag = 'shadow_dom' | 255 tag = 'shadow_dom' |
328 test = _BlinkPerfMeasurement | 256 subdir = 'ShadowDOM' |
329 | |
330 @classmethod | |
331 def Name(cls): | |
332 return 'blink_perf.shadow_dom' | |
333 | |
334 def CreateStorySet(self, options): | |
335 path = os.path.join(BLINK_PERF_BASE_DIR, 'ShadowDOM') | |
336 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
337 | 257 |
338 | 258 |
339 # This benchmark is for local testing, doesn't need to run on bots. | 259 # This benchmark is for local testing, doesn't need to run on bots. |
340 @benchmark.Disabled('all') | 260 @benchmark.Disabled('all') |
341 class BlinkPerfXMLHttpRequest(perf_benchmark.PerfBenchmark): | 261 class BlinkPerfXMLHttpRequest(_BlinkPerfBenchmark): |
342 tag = 'xml_http_request' | 262 tag = 'xml_http_request' |
343 test = _BlinkPerfMeasurement | 263 subdir = 'XMLHttpRequest' |
344 | |
345 @classmethod | |
346 def Name(cls): | |
347 return 'blink_perf.xml_http_request' | |
348 | |
349 def CreateStorySet(self, options): | |
350 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') | |
351 return CreateStorySetFromPath(path, SKIPPED_FILE) | |
352 | 264 |
353 | 265 |
354 # Disabled on Windows and ChromeOS due to https://crbug.com/521887 | 266 # Disabled on Windows and ChromeOS due to https://crbug.com/521887 |
355 #@benchmark.Disabled('win', 'chromeos') | 267 #@benchmark.Disabled('win', 'chromeos') |
356 # Disabling on remaining platforms due to heavy flake https://crbug.com/646938 | 268 # Disabling on remaining platforms due to heavy flake https://crbug.com/646938 |
357 @benchmark.Disabled('all') | 269 @benchmark.Disabled('all') |
358 class BlinkPerfPywebsocket(perf_benchmark.PerfBenchmark): | 270 class BlinkPerfPywebsocket(_BlinkPerfBenchmark): |
359 """The blink_perf.pywebsocket tests measure turn-around-time of 10MB | 271 """The blink_perf.pywebsocket tests measure turn-around-time of 10MB |
360 send/receive for XHR, Fetch API and WebSocket. We might ignore < 10% | 272 send/receive for XHR, Fetch API and WebSocket. We might ignore < 10% |
361 regressions, because the tests are noisy and such regressions are | 273 regressions, because the tests are noisy and such regressions are |
362 often unreproducible (https://crbug.com/549017). | 274 often unreproducible (https://crbug.com/549017). |
363 """ | 275 """ |
364 tag = 'pywebsocket' | 276 tag = 'pywebsocket' |
365 test = _BlinkPerfMeasurement | 277 subdir = 'Pywebsocket' |
366 | |
367 @classmethod | |
368 def Name(cls): | |
369 return 'blink_perf.pywebsocket' | |
370 | 278 |
371 def CreateStorySet(self, options): | 279 def CreateStorySet(self, options): |
372 path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket') | 280 path = os.path.join(BLINK_PERF_BASE_DIR, self.subdir) |
373 return CreateStorySetFromPath( | 281 return CreateStorySetFromPath( |
374 path, SKIPPED_FILE, | 282 path, SKIPPED_FILE, |
375 shared_page_state_class=_SharedPywebsocketPageState) | 283 shared_page_state_class=_SharedPywebsocketPageState) |
376 | 284 |
377 @classmethod | 285 @classmethod |
378 def ShouldDisable(cls, possible_browser): | 286 def ShouldDisable(cls, possible_browser): |
379 return cls.IsSvelte(possible_browser) # http://crbug.com/551950 | 287 return cls.IsSvelte(possible_browser) # http://crbug.com/551950 |
OLD | NEW |