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

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

Issue 26031002: cc: Remove unused metrics from RenderingStats. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed raster_worker_pool_perftest.cc 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/metrics/gpu_rendering_stats.py ('k') | tools/perf/metrics/smoothness.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 class RenderingStats(object):
6 def __init__(self, smoothness_marker, gesture_marker, rendering_stats_deltas,
7 used_gpu_benchmarking):
8 """
9 Utility class for extracting rendering statistics from the timeline (or
10 other loggin facilities), and providing them in a common format to classes
11 that compute benchmark metrics from this data.
12
13 Stats can either be numbers, or lists of numbers. Classes that calculate
14 metrics from the stats must be able to handle both cases. The length of
15 different list stats may vary.
16
17 All *_time values are measured in seconds.
18 """
19 self.renderer_process = smoothness_marker.start_thread.parent
20 self.start = gesture_marker.start
21 self.end = self.start + gesture_marker.duration
22
23 self.total_time = (self.end - self.start) / 1000.0
24 self.frame_count = []
25 self.frame_timestamps = []
26 self.paint_time = []
27 self.painted_pixel_count = []
28 self.record_time = []
29 self.recorded_pixel_count = []
30 self.rasterize_time = []
31 self.rasterized_pixel_count = []
32
33 if used_gpu_benchmarking:
34 self.initMainThreadStatsFromTimeline()
35 self.initImplThreadStatsFromTimeline()
36 else:
37 self.initFrameCountsFromRenderingStats(rendering_stats_deltas)
38
39 def initFrameCountsFromRenderingStats(self, rs):
40 # TODO(ernstm): remove numFramesSentToScreen when RenderingStats
41 # cleanup CL was picked up by the reference build.
42 if 'frameCount' in rs:
43 self.frame_count = rs.get('frameCount', 0)
44 else:
45 self.frame_count = rs.get('numFramesSentToScreen', 0)
46
47 def initMainThreadStatsFromTimeline(self):
48 for event in self.renderer_process.IterAllSlicesOfName(
49 'MainThreadRenderingStats::IssueTraceEvent'):
50 if event.start >= self.start and event.end <= self.end:
51 if 'data' not in event.args:
52 continue
53 # TODO(ernstm): remove screen_frame_count when RenderingStats
54 # cleanup CL was picked up by the reference build.
55 if 'frame_count' in event.args['data']:
56 frame_count = event.args['data']['frame_count']
57 else:
58 frame_count = event.args['data']['screen_frame_count']
59 self.frame_count.append(frame_count)
60 if frame_count > 1:
61 raise ValueError, 'trace contains multi-frame render stats'
62 if frame_count == 1:
63 self.frame_timestamps.append(
64 event.start)
65 self.paint_time.append(
66 event.args['data']['paint_time'])
67 self.painted_pixel_count.append(
68 event.args['data']['painted_pixel_count'])
69 self.record_time.append(
70 event.args['data']['record_time'])
71 self.recorded_pixel_count.append(
72 event.args['data']['recorded_pixel_count'])
73
74 def initImplThreadStatsFromTimeline(self):
75 for event in self.renderer_process.IterAllSlicesOfName(
76 'ImplThreadRenderingStats::IssueTraceEvent'):
77 if event.start >= self.start and event.end <= self.end:
78 if 'data' not in event.args:
79 continue
80 # TODO(ernstm): remove screen_frame_count when RenderingStats
81 # cleanup CL was picked up by the reference build.
82 if 'frame_count' in event.args['data']:
83 frame_count = event.args['data']['frame_count']
84 else:
85 frame_count = event.args['data']['screen_frame_count']
86 self.frame_count.append(frame_count)
87 if frame_count > 1:
88 raise ValueError, 'trace contains multi-frame render stats'
89 if frame_count == 1:
90 self.frame_timestamps.append(
91 event.start)
92 self.rasterize_time.append(
93 event.args['data']['rasterize_time'])
94 self.rasterized_pixel_count.append(
95 event.args['data']['rasterized_pixel_count'])
OLDNEW
« no previous file with comments | « tools/perf/metrics/gpu_rendering_stats.py ('k') | tools/perf/metrics/smoothness.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698