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

Unified Diff: tools/perf/benchmarks/service_worker.py

Issue 688563002: ServiceWorker: Separate micro benchmark from application benchmark (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@telemetry-newperf
Patch Set: Fix a typo Created 6 years, 2 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/page_sets/data/service_worker.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/benchmarks/service_worker.py
diff --git a/tools/perf/benchmarks/service_worker.py b/tools/perf/benchmarks/service_worker.py
index 625c4fbfa45a5f4601d67610de06ec5aa30d67d4..880a920da1ea87d85aba94c955f29558695a217b 100644
--- a/tools/perf/benchmarks/service_worker.py
+++ b/tools/perf/benchmarks/service_worker.py
@@ -15,6 +15,7 @@ from telemetry.timeline import async_slice as async_slice_module
from telemetry.timeline import slice as slice_module
from telemetry.value import scalar
+
class _ServiceWorkerTimelineMetric(object):
def AddResultsOfCounters(self, process, counter_regex_string, results):
counter_filter = re.compile(counter_regex_string)
@@ -82,6 +83,8 @@ class _ServiceWorkerTimelineMetric(object):
class _ServiceWorkerMeasurement(page_test.PageTest):
+ """Measure Speed Index and TRACE_EVENTs"""
+
def __init__(self, *args, **kwargs):
super(_ServiceWorkerMeasurement, self).__init__(*args, **kwargs)
self._timeline_controller = timeline_controller.TimelineController()
@@ -99,17 +102,9 @@ class _ServiceWorkerMeasurement(page_test.PageTest):
self._speed_index.Start(page, tab)
def ValidateAndMeasurePage(self, page, tab, results):
- tab.WaitForJavaScriptExpression(
- '(window.done == null) ? ' +
- '(document.readyState == "complete") : window.done', 40)
+ tab.WaitForDocumentReadyStateToBeComplete(40)
self._timeline_controller.Stop(tab)
- # Measure JavaScript-land
- json = tab.EvaluateJavaScript('window.results || {}')
- for key, value in json.iteritems():
- results.AddValue(scalar.ScalarValue(
- results.current_page, key, value['units'], value['value']))
-
# Retrieve TRACE_EVENTs
timeline_metric = _ServiceWorkerTimelineMetric()
browser_process = self._timeline_controller.model.browser_process
@@ -138,8 +133,55 @@ class _ServiceWorkerMeasurement(page_test.PageTest):
chart_prefix += '_later'
self._speed_index.AddResults(tab, results, chart_prefix)
+
+class _ServiceWorkerMicroBenchmarkMeasurement(page_test.PageTest):
+ """Measure JS land values and TRACE_EVENTs"""
+
+ def __init__(self, *args, **kwargs):
+ super(_ServiceWorkerMicroBenchmarkMeasurement, self).__init__(*args,
+ **kwargs)
+ self._timeline_controller = timeline_controller.TimelineController()
+
+ def CustomizeBrowserOptions(self, options):
+ options.AppendExtraBrowserArgs([
+ '--enable-experimental-web-platform-features'
+ ])
+
+ def WillNavigateToPage(self, page, tab):
+ self._timeline_controller.SetUp(page, tab)
+ self._timeline_controller.Start(tab)
+
+ def ValidateAndMeasurePage(self, page, tab, results):
+ tab.WaitForJavaScriptExpression('window.done', 40)
+ self._timeline_controller.Stop(tab)
+
+ # Measure JavaScript-land
+ json = tab.EvaluateJavaScript('window.results || {}')
+ for key, value in json.iteritems():
+ results.AddValue(scalar.ScalarValue(
+ results.current_page, key, value['units'], value['value']))
+
+ # Retrieve TRACE_EVENTs
+ timeline_metric = _ServiceWorkerTimelineMetric()
+ browser_process = self._timeline_controller.model.browser_process
+ filter_text = '(RegisterServiceWorker|'\
+ 'UnregisterServiceWorker|'\
+ 'ProcessAllocate|'\
+ 'FindRegistrationForDocument|'\
+ 'DispatchFetchEvent)'
+ timeline_metric.AddResultsOfEvents(
+ browser_process, 'IOThread', filter_text , results)
+
+
@benchmark.Enabled('android')
class ServiceWorkerPerfTest(benchmark.Benchmark):
- """Performance test on pages controlled by ServiceWorker"""
+ """Performance test on public applications using ServiceWorker"""
test = _ServiceWorkerMeasurement
page_set = page_sets.ServiceWorkerPageSet
+
+
+@benchmark.Enabled('android')
+class ServiceWorkerMicroBenchmarkPerfTest(benchmark.Benchmark):
+ """Service Worker performance test using a micro benchmark page set"""
+ test = _ServiceWorkerMicroBenchmarkMeasurement
+ page_set = page_sets.ServiceWorkerMicroBenchmarkPageSet
« no previous file with comments | « no previous file | tools/perf/page_sets/data/service_worker.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698