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

Unified 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: Rebase. Override shared_page_state. Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/perf/benchmarks/pywebsocket_server.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/benchmarks/blink_perf.py
diff --git a/tools/perf/benchmarks/blink_perf.py b/tools/perf/benchmarks/blink_perf.py
index dfb16534923970bd93b0f914fb290f3c7bbd0bab..0803a948885255e8f880943e96d096ab02c35a0e 100644
--- a/tools/perf/benchmarks/blink_perf.py
+++ b/tools/perf/benchmarks/blink_perf.py
@@ -4,11 +4,13 @@
import os
+from benchmarks import pywebsocket_server
from telemetry import benchmark
from telemetry.core import util
from telemetry import page as page_module
from telemetry.page import page_set
from telemetry.page import page_test
+from telemetry.page import shared_page_state
from telemetry.value import list_of_scalar_values
@@ -17,7 +19,9 @@ BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(),
SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped')
-def CreatePageSetFromPath(path, skipped_file):
+def CreatePageSetFromPath(
+ path, skipped_file,
+ shared_page_state_class=shared_page_state.SharedPageState):
assert os.path.exists(path)
page_urls = []
@@ -57,7 +61,8 @@ def CreatePageSetFromPath(path, skipped_file):
ps = page_set.PageSet(file_path=os.getcwd()+os.sep,
serving_dirs=serving_dirs)
for url in page_urls:
- ps.AddUserStory(page_module.Page(url, ps, ps.base_dir))
+ ps.AddUserStory(page_module.Page(
+ url, ps, ps.base_dir, shared_page_state_class=shared_page_state_class))
return ps
@@ -114,6 +119,26 @@ class _BlinkPerfFullFrameMeasurement(_BlinkPerfMeasurement):
options.AppendExtraBrowserArgs(['--expose-internals-for-testing'])
+class _BlinkPerfPywebsocketMeasurement(_BlinkPerfMeasurement):
+ def CustomizeBrowserOptions(self, options):
+ super(_BlinkPerfPywebsocketMeasurement, self).CustomizeBrowserOptions(
+ options)
+ # Cross-origin accesses are needed to run benchmarks spanning two servers,
+ # the Telemetry's HTTP server and the pywebsocket server.
+ options.AppendExtraBrowserArgs(['--disable-web-security'])
+
+
+class _SharedPywebsocketPageState(shared_page_state.SharedPageState):
+ """Runs a pywebsocket server."""
+ def WillRunUserStory(self, page):
+ super(_SharedPywebsocketPageState, self).WillRunUserStory(page)
+
+ # Start a pywebsocket server if not already running.
+ if not self.browser.GetRunningLocalServer(
+ pywebsocket_server.PywebsocketServer, None):
nednguyen 2015/04/06 17:34:02 Can you explain why we need this check?
hiroshige 2015/04/08 07:47:25 This is to avoid multiple instances of pywebsocket
nednguyen 2015/04/08 15:08:26 https://code.google.com/p/chromium/codesearch#chro
aiolos (Not reviewing) 2015/04/08 17:32:56 +1. You should only have logic that should be run
hiroshige 2015/04/09 09:11:42 Done (I'm not sure this is correct way to get plat
+ self.browser.StartLocalServer(pywebsocket_server.PywebsocketServer())
+
+
class BlinkPerfAnimation(benchmark.Benchmark):
tag = 'animation'
test = _BlinkPerfMeasurement
@@ -306,3 +331,17 @@ class BlinkPerfXMLHttpRequest(benchmark.Benchmark):
def CreatePageSet(self, options):
path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest')
return CreatePageSetFromPath(path, SKIPPED_FILE)
+
+
+class BlinkPerfPywebsocket(benchmark.Benchmark):
+ tag = 'pywebsocket'
+ test = _BlinkPerfPywebsocketMeasurement
+
+ @classmethod
+ def Name(cls):
+ return 'blink_perf.pywebsocket'
+
+ def CreatePageSet(self, options):
+ path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket')
+ return CreatePageSetFromPath(path, SKIPPED_FILE,
+ shared_page_state_class=_SharedPywebsocketPageState)
« 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