| 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 |