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

Side by Side Diff: tools/perf/metrics/rendering_stats.py

Issue 268803002: re-land: telemetry: Add approximated pixels percentage to smoothness. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/perf/metrics/rendering_stats_unittest.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 from operator import attrgetter 5 from operator import attrgetter
6 from telemetry.page import page_measurement 6 from telemetry.page import page_measurement
7 7
8 # These are LatencyInfo component names indicating the various components 8 # These are LatencyInfo component names indicating the various components
9 # that the input event has travelled through. 9 # that the input event has travelled through.
10 # This is when the input event first reaches chrome. 10 # This is when the input event first reaches chrome.
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 timestamp_process = renderer_process 138 timestamp_process = renderer_process
139 139
140 self.frame_timestamps = [] 140 self.frame_timestamps = []
141 self.frame_times = [] 141 self.frame_times = []
142 self.paint_times = [] 142 self.paint_times = []
143 self.painted_pixel_counts = [] 143 self.painted_pixel_counts = []
144 self.record_times = [] 144 self.record_times = []
145 self.recorded_pixel_counts = [] 145 self.recorded_pixel_counts = []
146 self.rasterize_times = [] 146 self.rasterize_times = []
147 self.rasterized_pixel_counts = [] 147 self.rasterized_pixel_counts = []
148 self.approximated_pixel_percentages = []
148 # End-to-end latency for MouseWheel scroll - from when mouse wheel event is 149 # End-to-end latency for MouseWheel scroll - from when mouse wheel event is
149 # generated to when the scrolled page is buffer swapped. 150 # generated to when the scrolled page is buffer swapped.
150 self.mouse_wheel_scroll_latency = [] 151 self.mouse_wheel_scroll_latency = []
151 # End-to-end latency for GestureScrollUpdate scroll - from when the touch 152 # End-to-end latency for GestureScrollUpdate scroll - from when the touch
152 # event is generated to the scrolled page is buffer swapped. 153 # event is generated to the scrolled page is buffer swapped.
153 self.touch_scroll_latency = [] 154 self.touch_scroll_latency = []
154 # End-to-end latency for JS touch handler scrolling - from when the touch 155 # End-to-end latency for JS touch handler scrolling - from when the touch
155 # event is generated to the scrolled page is buffer swapped. 156 # event is generated to the scrolled page is buffer swapped.
156 self.js_touch_scroll_latency = [] 157 self.js_touch_scroll_latency = []
157 158
158 for timeline_range in timeline_ranges: 159 for timeline_range in timeline_ranges:
159 self.frame_timestamps.append([]) 160 self.frame_timestamps.append([])
160 self.frame_times.append([]) 161 self.frame_times.append([])
161 self.paint_times.append([]) 162 self.paint_times.append([])
162 self.painted_pixel_counts.append([]) 163 self.painted_pixel_counts.append([])
163 self.record_times.append([]) 164 self.record_times.append([])
164 self.recorded_pixel_counts.append([]) 165 self.recorded_pixel_counts.append([])
165 self.rasterize_times.append([]) 166 self.rasterize_times.append([])
166 self.rasterized_pixel_counts.append([]) 167 self.rasterized_pixel_counts.append([])
168 self.approximated_pixel_percentages.append([])
167 self.mouse_wheel_scroll_latency.append([]) 169 self.mouse_wheel_scroll_latency.append([])
168 self.touch_scroll_latency.append([]) 170 self.touch_scroll_latency.append([])
169 self.js_touch_scroll_latency.append([]) 171 self.js_touch_scroll_latency.append([])
170 172
171 if timeline_range.is_empty: 173 if timeline_range.is_empty:
172 continue 174 continue
173 self._InitFrameTimestampsFromTimeline(timestamp_process, timeline_range) 175 self._InitFrameTimestampsFromTimeline(timestamp_process, timeline_range)
174 self._InitMainThreadRenderingStatsFromTimeline( 176 self._InitMainThreadRenderingStatsFromTimeline(
175 renderer_process, timeline_range) 177 renderer_process, timeline_range)
176 self._InitImplThreadRenderingStatsFromTimeline( 178 self._InitImplThreadRenderingStatsFromTimeline(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 self._AddFrameTimestamp(event) 228 self._AddFrameTimestamp(event)
227 229
228 event_name = 'BenchmarkInstrumentation::ImplThreadRenderingStats' 230 event_name = 'BenchmarkInstrumentation::ImplThreadRenderingStats'
229 for event in self._GatherEvents(event_name, process, timeline_range): 231 for event in self._GatherEvents(event_name, process, timeline_range):
230 self._AddFrameTimestamp(event) 232 self._AddFrameTimestamp(event)
231 233
232 234
233 def _InitMainThreadRenderingStatsFromTimeline(self, process, timeline_range): 235 def _InitMainThreadRenderingStatsFromTimeline(self, process, timeline_range):
234 event_name = 'BenchmarkInstrumentation::MainThreadRenderingStats' 236 event_name = 'BenchmarkInstrumentation::MainThreadRenderingStats'
235 for event in self._GatherEvents(event_name, process, timeline_range): 237 for event in self._GatherEvents(event_name, process, timeline_range):
236 self.paint_times[-1].append(1000.0 * 238 data = event.args['data']
237 event.args['data']['paint_time']) 239 self.paint_times[-1].append(1000.0 * data['paint_time'])
238 self.painted_pixel_counts[-1].append( 240 self.painted_pixel_counts[-1].append(data['painted_pixel_count'])
239 event.args['data']['painted_pixel_count']) 241 self.record_times[-1].append(1000.0 * data['record_time'])
240 self.record_times[-1].append(1000.0 * 242 self.recorded_pixel_counts[-1].append(data['recorded_pixel_count'])
241 event.args['data']['record_time'])
242 self.recorded_pixel_counts[-1].append(
243 event.args['data']['recorded_pixel_count'])
244 243
245 def _InitImplThreadRenderingStatsFromTimeline(self, process, timeline_range): 244 def _InitImplThreadRenderingStatsFromTimeline(self, process, timeline_range):
246 event_name = 'BenchmarkInstrumentation::ImplThreadRenderingStats' 245 event_name = 'BenchmarkInstrumentation::ImplThreadRenderingStats'
247 for event in self._GatherEvents(event_name, process, timeline_range): 246 for event in self._GatherEvents(event_name, process, timeline_range):
248 self.rasterize_times[-1].append(1000.0 * 247 data = event.args['data']
249 event.args['data']['rasterize_time']) 248 self.rasterize_times[-1].append(1000.0 * data['rasterize_time'])
250 self.rasterized_pixel_counts[-1].append( 249 self.rasterized_pixel_counts[-1].append(data['rasterized_pixel_count'])
251 event.args['data']['rasterized_pixel_count']) 250 if data.get('visible_content_area', 0):
251 self.approximated_pixel_percentages[-1].append(
252 round(float(data['approximated_visible_content_area']) /
253 float(data['visible_content_area']) * 100.0, 3))
254 else:
255 self.approximated_pixel_percentages[-1].append(0.0)
OLDNEW
« no previous file with comments | « no previous file | tools/perf/metrics/rendering_stats_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698