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

Side by Side Diff: tools/perf/benchmarks/blink_perf.py

Issue 736653002: [Pywebsocket PerformanceTests 2/2] Add blink_perf.pywebsocket (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add TODO. Created 5 years, 8 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
« no previous file with comments | « no previous file | tools/perf/benchmarks/pywebsocket_server.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 benchmarks import pywebsocket_server
7 from telemetry import benchmark 8 from telemetry import benchmark
9 from telemetry.core import local_server
10 from telemetry.core import platform as platform_module
8 from telemetry.core import util 11 from telemetry.core import util
9 from telemetry import page as page_module 12 from telemetry import page as page_module
10 from telemetry.page import page_set 13 from telemetry.page import page_set
11 from telemetry.page import page_test 14 from telemetry.page import page_test
15 from telemetry.page import shared_page_state
12 from telemetry.value import list_of_scalar_values 16 from telemetry.value import list_of_scalar_values
13 17
14 18
15 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), 19 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(),
16 'third_party', 'WebKit', 'PerformanceTests') 20 'third_party', 'WebKit', 'PerformanceTests')
17 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') 21 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped')
18 22
19 23
20 def CreatePageSetFromPath(path, skipped_file): 24 def CreatePageSetFromPath(
25 path, skipped_file,
26 shared_page_state_class=shared_page_state.SharedPageState):
21 assert os.path.exists(path) 27 assert os.path.exists(path)
22 28
23 page_urls = [] 29 page_urls = []
24 serving_dirs = set() 30 serving_dirs = set()
25 31
26 def _AddPage(path): 32 def _AddPage(path):
27 if not path.endswith('.html'): 33 if not path.endswith('.html'):
28 return 34 return
29 if '../' in open(path, 'r').read(): 35 if '../' in open(path, 'r').read():
30 # If the page looks like it references its parent dir, include it. 36 # If the page looks like it references its parent dir, include it.
(...skipping 19 matching lines...) Expand all
50 line = line.strip() 56 line = line.strip()
51 if line and not line.startswith('#'): 57 if line and not line.startswith('#'):
52 skipped_path = os.path.join(os.path.dirname(skipped_file), line) 58 skipped_path = os.path.join(os.path.dirname(skipped_file), line)
53 skipped.append(skipped_path.replace('/', os.sep)) 59 skipped.append(skipped_path.replace('/', os.sep))
54 _AddDir(path, tuple(skipped)) 60 _AddDir(path, tuple(skipped))
55 else: 61 else:
56 _AddPage(path) 62 _AddPage(path)
57 ps = page_set.PageSet(file_path=os.getcwd()+os.sep, 63 ps = page_set.PageSet(file_path=os.getcwd()+os.sep,
58 serving_dirs=serving_dirs) 64 serving_dirs=serving_dirs)
59 for url in page_urls: 65 for url in page_urls:
60 ps.AddUserStory(page_module.Page(url, ps, ps.base_dir)) 66 ps.AddUserStory(page_module.Page(
67 url, ps, ps.base_dir, shared_page_state_class=shared_page_state_class))
61 return ps 68 return ps
62 69
63 70
64 class _BlinkPerfMeasurement(page_test.PageTest): 71 class _BlinkPerfMeasurement(page_test.PageTest):
65 """Tuns a blink performance test and reports the results.""" 72 """Tuns a blink performance test and reports the results."""
66 def __init__(self): 73 def __init__(self):
67 super(_BlinkPerfMeasurement, self).__init__() 74 super(_BlinkPerfMeasurement, self).__init__()
68 with open(os.path.join(os.path.dirname(__file__), 75 with open(os.path.join(os.path.dirname(__file__),
69 'blink_perf.js'), 'r') as f: 76 'blink_perf.js'), 'r') as f:
70 self._blink_perf_js = f.read() 77 self._blink_perf_js = f.read()
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 self._blink_perf_js += '\nwindow.fullFrameMeasurement = true;' 114 self._blink_perf_js += '\nwindow.fullFrameMeasurement = true;'
108 115
109 def CustomizeBrowserOptions(self, options): 116 def CustomizeBrowserOptions(self, options):
110 super(_BlinkPerfFullFrameMeasurement, self).CustomizeBrowserOptions( 117 super(_BlinkPerfFullFrameMeasurement, self).CustomizeBrowserOptions(
111 options) 118 options)
112 # Full layout measurement needs content_shell with internals testing API. 119 # Full layout measurement needs content_shell with internals testing API.
113 assert 'content-shell' in options.browser_type 120 assert 'content-shell' in options.browser_type
114 options.AppendExtraBrowserArgs(['--expose-internals-for-testing']) 121 options.AppendExtraBrowserArgs(['--expose-internals-for-testing'])
115 122
116 123
124 class _BlinkPerfPywebsocketMeasurement(_BlinkPerfMeasurement):
125 def CustomizeBrowserOptions(self, options):
126 super(_BlinkPerfPywebsocketMeasurement, self).CustomizeBrowserOptions(
127 options)
128 # Cross-origin accesses are needed to run benchmarks spanning two servers,
129 # the Telemetry's HTTP server and the pywebsocket server.
130 options.AppendExtraBrowserArgs(['--disable-web-security'])
131
132
133 class _SharedPywebsocketPageState(shared_page_state.SharedPageState):
134 """Runs a pywebsocket server."""
135 def __init__(self, test, finder_options, user_story_set):
136 super(_SharedPywebsocketPageState, self).__init__(
137 test, finder_options, user_story_set)
138 self._pywebsocket_server = pywebsocket_server.PywebsocketServer()
139 platform_module.GetHostPlatform().StartLocalServer(
nednguyen 2015/04/23 15:29:19 Does this benchmark work for the case browser runs
hiroshige 2015/04/24 08:15:44 I tested and, no, this didn't work on android tryb
nednguyen 2015/04/24 15:04:37 Then we should figure out patch 12 doesn't work on
hiroshige 2015/07/30 05:29:07 This was because on Android platform.GetPlatformFo
140 self._pywebsocket_server)
141
142 def TearDownState(self, results):
143 super(_SharedPywebsocketPageState, self).TearDownState(results)
144 self._pywebsocket_server.Close()
145
146
117 class BlinkPerfAnimation(benchmark.Benchmark): 147 class BlinkPerfAnimation(benchmark.Benchmark):
118 tag = 'animation' 148 tag = 'animation'
119 test = _BlinkPerfMeasurement 149 test = _BlinkPerfMeasurement
120 150
121 @classmethod 151 @classmethod
122 def Name(cls): 152 def Name(cls):
123 return 'blink_perf.animation' 153 return 'blink_perf.animation'
124 154
125 def CreatePageSet(self, options): 155 def CreatePageSet(self, options):
126 path = os.path.join(BLINK_PERF_BASE_DIR, 'Animation') 156 path = os.path.join(BLINK_PERF_BASE_DIR, 'Animation')
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 tag = 'xml_http_request' 329 tag = 'xml_http_request'
300 test = _BlinkPerfMeasurement 330 test = _BlinkPerfMeasurement
301 331
302 @classmethod 332 @classmethod
303 def Name(cls): 333 def Name(cls):
304 return 'blink_perf.xml_http_request' 334 return 'blink_perf.xml_http_request'
305 335
306 def CreatePageSet(self, options): 336 def CreatePageSet(self, options):
307 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') 337 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest')
308 return CreatePageSetFromPath(path, SKIPPED_FILE) 338 return CreatePageSetFromPath(path, SKIPPED_FILE)
339
340
341 class BlinkPerfPywebsocket(benchmark.Benchmark):
342 tag = 'pywebsocket'
343 test = _BlinkPerfPywebsocketMeasurement
344
345 @classmethod
346 def Name(cls):
347 return 'blink_perf.pywebsocket'
348
349 def CreatePageSet(self, options):
350 path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket')
351 return CreatePageSetFromPath(path, SKIPPED_FILE,
352 shared_page_state_class=_SharedPywebsocketPageState)
OLDNEW
« no previous file with comments | « no previous file | tools/perf/benchmarks/pywebsocket_server.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698