OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 import itertools | 4 import itertools |
5 | 5 |
6 from operator import attrgetter | 6 from operator import attrgetter |
7 | 7 |
8 from telemetry.web_perf.metrics import rendering_frame | 8 from telemetry.web_perf.metrics import rendering_frame |
9 | 9 |
10 # These are LatencyInfo component names indicating the various components | 10 # These are LatencyInfo component names indicating the various components |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 if 'data' in event.args and event.args['data']['frame_count'] == 1: | 144 if 'data' in event.args and event.args['data']['frame_count'] == 1: |
145 return event_name | 145 return event_name |
146 | 146 |
147 return 'BenchmarkInstrumentation::ImplThreadRenderingStats' | 147 return 'BenchmarkInstrumentation::ImplThreadRenderingStats' |
148 | 148 |
149 class RenderingStats(object): | 149 class RenderingStats(object): |
150 def __init__(self, renderer_process, browser_process, surface_flinger_process, | 150 def __init__(self, renderer_process, browser_process, surface_flinger_process, |
151 gpu_process, timeline_ranges): | 151 gpu_process, timeline_ranges): |
152 """ | 152 """ |
153 Utility class for extracting rendering statistics from the timeline (or | 153 Utility class for extracting rendering statistics from the timeline (or |
154 other loggin facilities), and providing them in a common format to classes | 154 other logging facilities), and providing them in a common format to classes |
155 that compute benchmark metrics from this data. | 155 that compute benchmark metrics from this data. |
156 | 156 |
157 Stats are lists of lists of numbers. The outer list stores one list per | 157 Stats are lists of lists of numbers. The outer list stores one list per |
158 timeline range. | 158 timeline range. |
159 | 159 |
160 All *_time values are measured in milliseconds. | 160 All *_time values are measured in milliseconds. |
161 """ | 161 """ |
162 assert len(timeline_ranges) > 0 | 162 assert len(timeline_ranges) > 0 |
163 self.refresh_period = None | 163 self.refresh_period = None |
164 | 164 |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 | 307 |
308 def _InitFrameQueueingDurationsFromTimeline(self, process, timeline_range): | 308 def _InitFrameQueueingDurationsFromTimeline(self, process, timeline_range): |
309 try: | 309 try: |
310 events = rendering_frame.GetFrameEventsInsideRange(process, | 310 events = rendering_frame.GetFrameEventsInsideRange(process, |
311 timeline_range) | 311 timeline_range) |
312 new_frame_queueing_durations = [e.queueing_duration for e in events] | 312 new_frame_queueing_durations = [e.queueing_duration for e in events] |
313 self.frame_queueing_durations.append(new_frame_queueing_durations) | 313 self.frame_queueing_durations.append(new_frame_queueing_durations) |
314 except rendering_frame.NoBeginFrameIdException: | 314 except rendering_frame.NoBeginFrameIdException: |
315 self.errors['frame_queueing_durations'] = ( | 315 self.errors['frame_queueing_durations'] = ( |
316 'Current chrome version does not support the queueing delay metric.') | 316 'Current chrome version does not support the queueing delay metric.') |
OLD | NEW |