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

Unified Diff: tools/perf/measurements/smoothness_controller.py

Issue 1060583012: CL for perf tryjob on android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/perf/measurements/smoothness.py ('k') | tools/perf/page_sets/key_silk_cases.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/measurements/smoothness_controller.py
diff --git a/tools/perf/measurements/smoothness_controller.py b/tools/perf/measurements/smoothness_controller.py
index 1aa1fd7c5de5470dd439dee903a3c65ab7709840..b95ca7fbaebc4f94995ae9d37dd732d855e07660 100644
--- a/tools/perf/measurements/smoothness_controller.py
+++ b/tools/perf/measurements/smoothness_controller.py
@@ -1,11 +1,8 @@
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import sys
-
from telemetry.core.platform import tracing_category_filter
from telemetry.core.platform import tracing_options
-from telemetry.page import action_runner
from telemetry.timeline.model import TimelineModel
from telemetry.value import trace
from telemetry.web_perf.metrics import smoothness
@@ -13,7 +10,8 @@ from telemetry.web_perf import smooth_gesture_util
from telemetry.web_perf import timeline_interaction_record as tir_module
-RUN_SMOOTH_ACTIONS = 'RunSmoothAllActions'
+class SmoothnessTestException(Exception):
+ pass
class SmoothnessController(object):
@@ -22,9 +20,8 @@ class SmoothnessController(object):
self._trace_data = None
self._interaction = None
self._surface_flinger_trace_data = None
- self._auto_issuing_marker = auto_issuing_marker
- def SetUp(self, page, tab):
+ def Start(self, page, tab):
# FIXME: Remove webkit.console when blink.console lands in chromium and
# the ref builds are updated. crbug.com/386847
custom_categories = ['webkit.console', 'blink.console', 'benchmark']
@@ -37,18 +34,7 @@ class SmoothnessController(object):
options.enable_platform_display_trace = True
tab.browser.platform.tracing_controller.Start(options, category_filter, 60)
- def Start(self, tab):
- # Start the smooth marker for all smooth actions.
- runner = action_runner.ActionRunner(tab)
- if self._auto_issuing_marker:
- self._interaction = runner.CreateInteraction(
- RUN_SMOOTH_ACTIONS)
- self._interaction.Begin()
-
def Stop(self, tab):
- # End the smooth marker for all smooth actions.
- if self._auto_issuing_marker:
- self._interaction.End()
self._trace_data = tab.browser.platform.tracing_controller.Stop()
self._timeline_model = TimelineModel(self._trace_data)
@@ -60,35 +46,35 @@ class SmoothnessController(object):
results.current_page, self._trace_data))
renderer_thread = self._timeline_model.GetRendererThreadFromTabId(
tab.id)
- run_smooth_actions_record = None
smooth_records = []
for event in renderer_thread.async_slices:
if not tir_module.IsTimelineInteractionRecord(event.name):
continue
r = tir_module.TimelineInteractionRecord.FromAsyncEvent(event)
- if r.label == RUN_SMOOTH_ACTIONS:
- assert run_smooth_actions_record is None, (
- 'SmoothnessController cannot issue more than 1 %s record' %
- RUN_SMOOTH_ACTIONS)
- run_smooth_actions_record = r
- else:
- smooth_records.append(
- smooth_gesture_util.GetAdjustedInteractionIfContainGesture(
- self._timeline_model, r))
+ smooth_records.append(
+ smooth_gesture_util.GetAdjustedInteractionIfContainGesture(
+ self._timeline_model, r))
# If there is no other smooth records, we make measurements on time range
# marked smoothness_controller itself.
# TODO(nednguyen): when crbug.com/239179 is marked fixed, makes sure that
# page sets are responsible for issueing the markers themselves.
if len(smooth_records) == 0:
- if run_smooth_actions_record is None:
- sys.stderr.write('Raw tracing data:\n')
- self._trace_data.Serialize(sys.stderr)
- sys.stderr.write('\n')
- raise Exception('SmoothnessController failed to issue markers for the '
- 'whole interaction.')
- else:
- smooth_records = [run_smooth_actions_record]
+ raise SmoothnessTestException('Page failed to issue any markers.')
+
+ # Check to make sure all smooth records have same label and repeatable if
+ # there are more than one.
+ need_repeatable_flag = len(smooth_records) > 1
+ record_label = smooth_records[0].label
+ for r in smooth_records:
+ if r.label != record_label:
+ raise SmoothnessTestException(
+ 'SmoothController does not support multiple interactions with '
+ 'different label.')
+ if need_repeatable_flag and not r.repeatable:
+ raise SmoothnessTestException(
+ 'If there are more than one interaction record, each interaction '
+ 'must has repeatable flag.')
# Create an interaction_record for this legacy measurement. Since we don't
# wrap the results that are sent to smoothness metric, the label will
« no previous file with comments | « tools/perf/measurements/smoothness.py ('k') | tools/perf/page_sets/key_silk_cases.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698