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

Unified Diff: tools/perf/metrics/rendering_stats_unittest.py

Issue 167343003: Add latency metric mean_js_touch_scroll_latency for JS touch handler driven scroll (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 6 years, 10 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/metrics/rendering_stats.py ('k') | tools/perf/metrics/smoothness.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/metrics/rendering_stats_unittest.py
diff --git a/tools/perf/metrics/rendering_stats_unittest.py b/tools/perf/metrics/rendering_stats_unittest.py
index fd2dc402e9d174115a7ab2d71c0b1c2347ead5e7..11f82b5ad3f14721748e8ec05679bff47d557038 100644
--- a/tools/perf/metrics/rendering_stats_unittest.py
+++ b/tools/perf/metrics/rendering_stats_unittest.py
@@ -61,8 +61,10 @@ class ReferenceInputLatencyStats(object):
def __init__(self):
self.mouse_wheel_scroll_latency = []
self.touch_scroll_latency = []
+ self.js_touch_scroll_latency = []
self.mouse_wheel_scroll_events = []
self.touch_scroll_events = []
+ self.js_touch_scroll_events = []
def AddMainThreadRenderingStats(mock_timer, thread, first_frame,
ref_stats = None):
@@ -186,12 +188,16 @@ def AddInputLatencyStats(mock_timer, input_type, start_thread, end_thread,
ref_latency_stats.mouse_wheel_scroll_latency.append(
(data[END_COMP_NAME]['time'] - data[BEGIN_COMP_NAME]['time']) / 1000.0)
-
if input_type == 'GestureScrollUpdate':
ref_latency_stats.touch_scroll_events.append(async_sub_slice)
ref_latency_stats.touch_scroll_latency.append(
(data[END_COMP_NAME]['time'] - data[UI_COMP_NAME]['time']) / 1000.0)
+ if input_type == 'TouchMove':
+ ref_latency_stats.js_touch_scroll_events.append(async_sub_slice)
+ ref_latency_stats.js_touch_scroll_latency.append(
+ (data[END_COMP_NAME]['time'] - data[UI_COMP_NAME]['time']) / 1000.0)
+
class RenderingStatsUnitTest(unittest.TestCase):
def testFromTimeline(self):
timeline = model.TimelineModel()
@@ -294,6 +300,8 @@ class RenderingStatsUnitTest(unittest.TestCase):
renderer_main, ref_latency_stats)
AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
renderer_main, ref_latency_stats)
+ AddInputLatencyStats(timer, 'TouchMove', browser_main,
+ renderer_main, ref_latency_stats)
renderer_main.EndSlice(timer.Get())
# Create 5 input latency stats events not within any action.
@@ -302,6 +310,8 @@ class RenderingStatsUnitTest(unittest.TestCase):
renderer_main, None)
AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
renderer_main, None)
+ AddInputLatencyStats(timer, 'TouchMove', browser_main,
+ renderer_main, None)
# Create 10 input latency stats events for Action B.
timer.Advance()
@@ -311,6 +321,8 @@ class RenderingStatsUnitTest(unittest.TestCase):
renderer_main, ref_latency_stats)
AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
renderer_main, ref_latency_stats)
+ AddInputLatencyStats(timer, 'TouchMove', browser_main,
+ renderer_main, ref_latency_stats)
renderer_main.EndSlice(timer.Get())
# Create 10 input latency stats events for Action A.
@@ -321,6 +333,8 @@ class RenderingStatsUnitTest(unittest.TestCase):
renderer_main, ref_latency_stats)
AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
renderer_main, ref_latency_stats)
+ AddInputLatencyStats(timer, 'TouchMove', browser_main,
+ renderer_main, ref_latency_stats)
renderer_main.EndSlice(timer.Get())
browser_main.FinalizeImport()
@@ -328,6 +342,7 @@ class RenderingStatsUnitTest(unittest.TestCase):
mouse_wheel_scroll_events = []
touch_scroll_events = []
+ js_touch_scroll_events = []
timeline_markers = timeline.FindTimelineMarkers(
['ActionA', 'ActionB', 'ActionA'])
@@ -335,16 +350,25 @@ class RenderingStatsUnitTest(unittest.TestCase):
for marker in timeline_markers ]:
if timeline_range.is_empty:
continue
- tmp_mouse_events, tmp_touch_events = GetScrollInputLatencyEvents(
- browser, timeline_range)
+ tmp_mouse_events = GetScrollInputLatencyEvents(
+ 'MouseWheel', browser, timeline_range)
+ tmp_touch_scroll_events = GetScrollInputLatencyEvents(
+ 'GestureScrollUpdate', browser, timeline_range)
+ tmp_js_touch_scroll_events = GetScrollInputLatencyEvents(
+ 'TouchMove', browser, timeline_range)
mouse_wheel_scroll_events.extend(tmp_mouse_events)
- touch_scroll_events.extend(tmp_touch_events)
+ touch_scroll_events.extend(tmp_touch_scroll_events)
+ js_touch_scroll_events.extend(tmp_js_touch_scroll_events)
self.assertEquals(mouse_wheel_scroll_events,
ref_latency_stats.mouse_wheel_scroll_events)
self.assertEquals(touch_scroll_events,
ref_latency_stats.touch_scroll_events)
+ self.assertEquals(js_touch_scroll_events,
+ ref_latency_stats.js_touch_scroll_events)
self.assertEquals(ComputeMouseWheelScrollLatency(mouse_wheel_scroll_events),
ref_latency_stats.mouse_wheel_scroll_latency)
self.assertEquals(ComputeTouchScrollLatency(touch_scroll_events),
ref_latency_stats.touch_scroll_latency)
+ self.assertEquals(ComputeTouchScrollLatency(js_touch_scroll_events),
+ ref_latency_stats.js_touch_scroll_latency)
« no previous file with comments | « tools/perf/metrics/rendering_stats.py ('k') | tools/perf/metrics/smoothness.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698