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

Unified Diff: cc/raster_worker_pool.cc

Issue 12095053: cc: Avoid expensive RenderingStats collection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use WebSettings Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: cc/raster_worker_pool.cc
diff --git a/cc/raster_worker_pool.cc b/cc/raster_worker_pool.cc
index 8eb92c209da3d368877d8bd47222ebf6c7b56948..51101efae17dddc87c82d5ed623f55ca6d0e4e5d 100644
--- a/cc/raster_worker_pool.cc
+++ b/cc/raster_worker_pool.cc
@@ -40,11 +40,17 @@ void RunRasterTask(PicturePileImpl* picture_pile,
void RunImageDecodeTask(skia::LazyPixelRef* pixel_ref, RenderingStats* stats) {
TRACE_EVENT0("cc", "RunImageDecodeTask");
- base::TimeTicks decode_begin_time = base::TimeTicks::Now();
+ base::TimeTicks decode_begin_time;
+ if (stats)
+ decode_begin_time = base::TimeTicks::Now();
+
pixel_ref->Decode();
- stats->totalDeferredImageDecodeCount++;
- stats->totalDeferredImageDecodeTime +=
- base::TimeTicks::Now() - decode_begin_time;
+
+ if (stats) {
+ stats->totalDeferredImageDecodeCount++;
+ stats->totalDeferredImageDecodeTime +=
+ base::TimeTicks::Now() - decode_begin_time;
+ }
}
const char* kRasterThreadNamePrefix = "CompositorRaster";
@@ -90,9 +96,11 @@ void RasterWorkerPool::Thread::Init() {
#endif
}
-RasterWorkerPool::RasterWorkerPool(size_t num_raster_threads)
+RasterWorkerPool::RasterWorkerPool(
+ size_t num_raster_threads, bool record_rendering_stats)
: is_running_(false),
- raster_threads_need_sorting_(false) {
+ raster_threads_need_sorting_(false),
+ record_rendering_stats_(record_rendering_stats) {
const std::string thread_name_prefix = kRasterThreadNamePrefix;
while (raster_threads_.size() < num_raster_threads) {
int thread_number = raster_threads_.size() + 1;
@@ -158,7 +166,7 @@ void RasterWorkerPool::PostRasterTaskAndReply(PicturePileImpl* picture_pile,
buffer,
rect,
contents_scale,
- &task->rendering_stats_),
+ record_rendering_stats_ ? &task->rendering_stats_ : NULL),
base::Bind(&RasterWorkerPool::OnRasterTaskCompleted,
base::Unretained(this),
base::Unretained(task),
@@ -174,7 +182,8 @@ void RasterWorkerPool::PostImageDecodeTaskAndReply(
task->thread_->message_loop_proxy()->PostTaskAndReply(
FROM_HERE,
- base::Bind(&RunImageDecodeTask, pixel_ref, &task->rendering_stats_),
+ base::Bind(&RunImageDecodeTask, pixel_ref,
+ record_rendering_stats_ ? &task->rendering_stats_ : NULL),
base::Bind(&RasterWorkerPool::OnTaskCompleted,
base::Unretained(this),
base::Unretained(task),
@@ -182,6 +191,7 @@ void RasterWorkerPool::PostImageDecodeTaskAndReply(
}
void RasterWorkerPool::GetRenderingStats(RenderingStats* stats) {
+ DCHECK(record_rendering_stats_);
stats->totalRasterizeTime = base::TimeDelta();
stats->totalPixelsRasterized = 0;
stats->totalDeferredImageDecodeCount = 0;

Powered by Google App Engine
This is Rietveld 408576698