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

Unified Diff: cc/tile_manager.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/tile_manager.cc
diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
index de7bf0d816e7929e8f8d49279bb82148879d829a..dd1cb6ad9fd3c9b273e4aa10939e3b9674c1239b 100644
--- a/cc/tile_manager.cc
+++ b/cc/tile_manager.cc
@@ -118,14 +118,17 @@ ManagedTileState::~ManagedTileState() {
TileManager::TileManager(
TileManagerClient* client,
ResourceProvider* resource_provider,
- size_t num_raster_threads)
+ size_t num_raster_threads,
+ bool record_rendering_stats)
: client_(client),
resource_pool_(ResourcePool::Create(resource_provider)),
- raster_worker_pool_(RasterWorkerPool::Create(num_raster_threads)),
+ raster_worker_pool_(RasterWorkerPool::Create(
+ num_raster_threads, record_rendering_stats)),
manage_tiles_pending_(false),
manage_tiles_call_count_(0),
bytes_pending_set_pixels_(0),
- ever_exceeded_memory_budget_(false) {
+ ever_exceeded_memory_budget_(false),
+ record_rendering_stats_(record_rendering_stats) {
bool worker_pool_is_running = raster_worker_pool_->Start();
CHECK(worker_pool_is_running);
@@ -405,6 +408,7 @@ scoped_ptr<base::Value> TileManager::GetMemoryRequirementsAsValue() const {
}
void TileManager::GetRenderingStats(RenderingStats* stats) {
+ DCHECK(record_rendering_stats_);
raster_worker_pool_->GetRenderingStats(stats);
stats->totalDeferredImageCacheHitCount =
rendering_stats_.totalDeferredImageCacheHitCount;
@@ -569,15 +573,19 @@ void TileManager::GatherPixelRefsForTile(Tile* tile) {
TRACE_EVENT0("cc", "TileManager::GatherPixelRefsForTile");
ManagedTileState& managed_state = tile->managed_state();
if (managed_state.need_to_gather_pixel_refs) {
- base::TimeTicks gather_begin_time = base::TimeTicks::Now();
+ base::TimeTicks gather_begin_time;
+ if (record_rendering_stats_)
+ gather_begin_time = base::TimeTicks::Now();
tile->picture_pile()->GatherPixelRefs(
tile->content_rect_,
tile->contents_scale_,
managed_state.pending_pixel_refs);
- rendering_stats_.totalImageGatheringCount++;
- rendering_stats_.totalImageGatheringTime +=
- base::TimeTicks::Now() - gather_begin_time;
managed_state.need_to_gather_pixel_refs = false;
+ if (record_rendering_stats_) {
+ rendering_stats_.totalImageGatheringCount++;
+ rendering_stats_.totalImageGatheringTime +=
+ base::TimeTicks::Now() - gather_begin_time;
+ }
}
}

Powered by Google App Engine
This is Rietveld 408576698