OLD | NEW |
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 Loading... |
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 Loading... |
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) |
OLD | NEW |