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

Side by Side Diff: cc/rendering_stats_recorder.cc

Issue 12519006: cc:: Add RenderingStatsInstrumentation to manage collection of RenderingStats (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Early out in methods, pass raw pointers, updated tests Created 7 years, 9 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
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 #include "cc/rendering_stats_recorder.h"
6
7 namespace cc {
8
9 // static
10 scoped_ptr<RenderingStatsRecorder> RenderingStatsRecorder::create() {
danakj 2013/03/13 17:25:41 Create()
egraether 2013/03/14 18:58:07 Done.
11 return make_scoped_ptr(new RenderingStatsRecorder());
12 }
13
14 RenderingStatsRecorder::RenderingStatsRecorder()
15 : record_rendering_stats_(false) {
16 }
17
18 RenderingStats RenderingStatsRecorder::GetRenderingStats() {
19 base::AutoLock scoped_lock(lock_);
20 return rendering_stats_;
21 }
22
23 bool RenderingStatsRecorder::record_rendering_stats() const {
24 return record_rendering_stats_;
danakj 2013/03/13 17:25:41 why no lock?
25 }
26
27 void RenderingStatsRecorder::set_record_rendering_stats(
28 bool record_rendering_stats) {
29 record_rendering_stats_ = record_rendering_stats;
danakj 2013/03/13 17:25:41 autolock here
30 }
31
32 base::TimeTicks RenderingStatsRecorder::StartRecording() const {
33 if (record_rendering_stats_)
danakj 2013/03/13 17:25:41 autolock here
34 return base::TimeTicks::HighResNow();
35 return base::TimeTicks();
36 }
37
38 base::TimeDelta RenderingStatsRecorder::EndRecording(
39 base::TimeTicks start_time) const {
40 if (!start_time.is_null())
41 return base::TimeTicks::HighResNow() - start_time;
42 return base::TimeDelta();
43 }
44
45 void RenderingStatsRecorder::AddStats(const RenderingStats& other) {
46 if (!record_rendering_stats_)
danakj 2013/03/13 17:25:41 move the lock to the top of these functions, so yo
47 return;
48
49 base::AutoLock scoped_lock(lock_);
50 rendering_stats_.Add(other);
51 }
52
53 void RenderingStatsRecorder::IncrementAnimationFrameCount() {
54 if (!record_rendering_stats_)
55 return;
56
57 base::AutoLock scoped_lock(lock_);
58 rendering_stats_.numAnimationFrames++;
59 }
60
61 void RenderingStatsRecorder::SetScreenAndDroppedFrameCount(
62 int64 screen_total,
63 int64 dropped_total) {
64 if (!record_rendering_stats_)
65 return;
66
67 base::AutoLock scoped_lock(lock_);
68 rendering_stats_.numFramesSentToScreen = screen_total;
69 rendering_stats_.droppedFrameCount = dropped_total;
70 }
71
72 void RenderingStatsRecorder::AddCommit(base::TimeDelta duration) {
73 if (!record_rendering_stats_)
74 return;
75
76 base::AutoLock scoped_lock(lock_);
77 rendering_stats_.totalCommitTime += duration;
78 rendering_stats_.totalCommitCount++;
79 }
80
81 void RenderingStatsRecorder::AddPaint(base::TimeDelta duration, int64 pixels) {
82 if (!record_rendering_stats_)
83 return;
84
85 base::AutoLock scoped_lock(lock_);
86 rendering_stats_.totalPaintTime += duration;
87 rendering_stats_.totalPixelsPainted += pixels;
88 }
89
90 void RenderingStatsRecorder::AddRaster(base::TimeDelta duration,
91 int64 pixels,
92 bool is_in_pending_tree_now_bin) {
93 if (!record_rendering_stats_)
94 return;
95
96 base::AutoLock scoped_lock(lock_);
97 rendering_stats_.totalRasterizeTime += duration;
98 rendering_stats_.totalPixelsRasterized += pixels;
99
100 if (is_in_pending_tree_now_bin)
101 rendering_stats_.totalRasterizeTimeForNowBinsOnPendingTree += duration;
102 }
103
104 void RenderingStatsRecorder::IncrementImplThreadScrolls() {
105 if (!record_rendering_stats_)
106 return;
107
108 base::AutoLock scoped_lock(lock_);
109 rendering_stats_.numImplThreadScrolls++;
110 }
111
112 void RenderingStatsRecorder::IncrementMainThreadScrolls() {
113 if (!record_rendering_stats_)
114 return;
115
116 base::AutoLock scoped_lock(lock_);
117 rendering_stats_.numMainThreadScrolls++;
118 }
119
120 void RenderingStatsRecorder::AddLayersDrawn(int64 amount) {
121 if (!record_rendering_stats_)
122 return;
123
124 base::AutoLock scoped_lock(lock_);
125 rendering_stats_.numLayersDrawn += amount;
126 }
127
128 void RenderingStatsRecorder::AddMissingTiles(int64 amount) {
129 if (!record_rendering_stats_)
130 return;
131
132 base::AutoLock scoped_lock(lock_);
133 rendering_stats_.numMissingTiles += amount;
134 }
135
136 void RenderingStatsRecorder::AddDeferredImageDecode(base::TimeDelta duration) {
137 if (!record_rendering_stats_)
138 return;
139
140 base::AutoLock scoped_lock(lock_);
141 rendering_stats_.totalDeferredImageDecodeTime += duration;
142 rendering_stats_.totalDeferredImageDecodeCount++;
143 }
144
145 void RenderingStatsRecorder::AddImageGathering(base::TimeDelta duration) {
146 if (!record_rendering_stats_)
147 return;
148
149 base::AutoLock scoped_lock(lock_);
150 rendering_stats_.totalImageGatheringTime += duration;
151 rendering_stats_.totalImageGatheringCount++;
152 }
153
154 void RenderingStatsRecorder::IncrementDeferredImageCacheHitCount() {
155 if (!record_rendering_stats_)
156 return;
157
158 base::AutoLock scoped_lock(lock_);
159 rendering_stats_.totalDeferredImageCacheHitCount++;
160 }
161
162 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698