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

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

Issue 25353009: telemetry: Refactored rasterize_and_record measurement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Made BenchmarkInstrumentation a class. Created 7 years, 2 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
« no previous file with comments | « tools/perf/measurements/rasterize_and_record.py ('k') | no next file » | 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 class RenderingStats(object): 5 class RenderingStats(object):
6 def __init__(self, smoothness_marker, gesture_marker, rendering_stats_deltas, 6 def __init__(self, smoothness_marker, gesture_marker, rendering_stats_deltas,
7 used_gpu_benchmarking): 7 used_gpu_benchmarking):
8 """ 8 """
9 Utility class for extracting rendering statistics from the timeline (or 9 Utility class for extracting rendering statistics from the timeline (or
10 other loggin facilities), and providing them in a common format to classes 10 other loggin facilities), and providing them in a common format to classes
(...skipping 27 matching lines...) Expand all
38 38
39 def initFrameCountsFromRenderingStats(self, rs): 39 def initFrameCountsFromRenderingStats(self, rs):
40 # TODO(ernstm): remove numFramesSentToScreen when RenderingStats 40 # TODO(ernstm): remove numFramesSentToScreen when RenderingStats
41 # cleanup CL was picked up by the reference build. 41 # cleanup CL was picked up by the reference build.
42 if 'frameCount' in rs: 42 if 'frameCount' in rs:
43 self.frame_count = rs.get('frameCount', 0) 43 self.frame_count = rs.get('frameCount', 0)
44 else: 44 else:
45 self.frame_count = rs.get('numFramesSentToScreen', 0) 45 self.frame_count = rs.get('numFramesSentToScreen', 0)
46 46
47 def initMainThreadStatsFromTimeline(self): 47 def initMainThreadStatsFromTimeline(self):
48 # TODO(ernstm): Remove when CL with new event names was rolled into
49 # reference build.
50 event_name = 'BenchmarkInstrumentation::MainThreadRenderingStats'
48 for event in self.renderer_process.IterAllSlicesOfName( 51 for event in self.renderer_process.IterAllSlicesOfName(
49 'MainThreadRenderingStats::IssueTraceEvent'): 52 'MainThreadRenderingStats::IssueTraceEvent'):
53 event_name = 'MainThreadRenderingStats::IssueTraceEvent'
54 for event in self.renderer_process.IterAllSlicesOfName(event_name):
50 if event.start >= self.start and event.end <= self.end: 55 if event.start >= self.start and event.end <= self.end:
51 if 'data' not in event.args: 56 if 'data' not in event.args:
52 continue 57 continue
53 # TODO(ernstm): remove screen_frame_count when RenderingStats 58 # TODO(ernstm): remove screen_frame_count when RenderingStats
54 # cleanup CL was picked up by the reference build. 59 # cleanup CL was picked up by the reference build.
55 if 'frame_count' in event.args['data']: 60 if 'frame_count' in event.args['data']:
56 frame_count = event.args['data']['frame_count'] 61 frame_count = event.args['data']['frame_count']
57 else: 62 else:
58 frame_count = event.args['data']['screen_frame_count'] 63 frame_count = event.args['data']['screen_frame_count']
59 self.frame_count.append(frame_count) 64 self.frame_count.append(frame_count)
60 if frame_count > 1: 65 if frame_count > 1:
61 raise ValueError, 'trace contains multi-frame render stats' 66 raise ValueError, 'trace contains multi-frame render stats'
62 if frame_count == 1: 67 if frame_count == 1:
63 self.frame_timestamps.append( 68 self.frame_timestamps.append(
64 event.start) 69 event.start)
65 self.paint_time.append( 70 self.paint_time.append(
66 event.args['data']['paint_time']) 71 event.args['data']['paint_time'])
67 self.painted_pixel_count.append( 72 self.painted_pixel_count.append(
68 event.args['data']['painted_pixel_count']) 73 event.args['data']['painted_pixel_count'])
69 self.record_time.append( 74 self.record_time.append(
70 event.args['data']['record_time']) 75 event.args['data']['record_time'])
71 self.recorded_pixel_count.append( 76 self.recorded_pixel_count.append(
72 event.args['data']['recorded_pixel_count']) 77 event.args['data']['recorded_pixel_count'])
73 78
74 def initImplThreadStatsFromTimeline(self): 79 def initImplThreadStatsFromTimeline(self):
80 # TODO(ernstm): Remove when CL with new event names was rolled into
81 # reference build.
82 event_name = 'BenchmarkInstrumentation::ImplThreadRenderingStats'
75 for event in self.renderer_process.IterAllSlicesOfName( 83 for event in self.renderer_process.IterAllSlicesOfName(
76 'ImplThreadRenderingStats::IssueTraceEvent'): 84 'ImplThreadRenderingStats::IssueTraceEvent'):
85 event_name = 'ImplThreadRenderingStats::IssueTraceEvent'
86 for event in self.renderer_process.IterAllSlicesOfName(event_name):
77 if event.start >= self.start and event.end <= self.end: 87 if event.start >= self.start and event.end <= self.end:
78 if 'data' not in event.args: 88 if 'data' not in event.args:
79 continue 89 continue
80 # TODO(ernstm): remove screen_frame_count when RenderingStats 90 # TODO(ernstm): remove screen_frame_count when RenderingStats
81 # cleanup CL was picked up by the reference build. 91 # cleanup CL was picked up by the reference build.
82 if 'frame_count' in event.args['data']: 92 if 'frame_count' in event.args['data']:
83 frame_count = event.args['data']['frame_count'] 93 frame_count = event.args['data']['frame_count']
84 else: 94 else:
85 frame_count = event.args['data']['screen_frame_count'] 95 frame_count = event.args['data']['screen_frame_count']
86 self.frame_count.append(frame_count) 96 self.frame_count.append(frame_count)
87 if frame_count > 1: 97 if frame_count > 1:
88 raise ValueError, 'trace contains multi-frame render stats' 98 raise ValueError, 'trace contains multi-frame render stats'
89 if frame_count == 1: 99 if frame_count == 1:
90 self.frame_timestamps.append( 100 self.frame_timestamps.append(
91 event.start) 101 event.start)
92 self.rasterize_time.append( 102 self.rasterize_time.append(
93 event.args['data']['rasterize_time']) 103 event.args['data']['rasterize_time'])
94 self.rasterized_pixel_count.append( 104 self.rasterized_pixel_count.append(
95 event.args['data']['rasterized_pixel_count']) 105 event.args['data']['rasterized_pixel_count'])
OLDNEW
« no previous file with comments | « tools/perf/measurements/rasterize_and_record.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698