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

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: nits 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
« no previous file with comments | « cc/tile_manager.h ('k') | cc/tiled_layer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tile_manager.cc
diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
index 612e39dcb3c87cbc9782a9176d6552e3ad78678f..6c60aec255e68b29fc9cf1e0382ec8d225c26f69 100644
--- a/cc/tile_manager.cc
+++ b/cc/tile_manager.cc
@@ -114,14 +114,16 @@ 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) {
for (int i = 0; i < NUM_STATES; ++i) {
for (int j = 0; j < NUM_TREES; ++j) {
for (int k = 0; k < NUM_BINS; ++k)
@@ -398,6 +400,7 @@ scoped_ptr<base::Value> TileManager::GetMemoryRequirementsAsValue() const {
}
void TileManager::GetRenderingStats(RenderingStats* stats) {
+ CHECK(record_rendering_stats_);
raster_worker_pool_->GetRenderingStats(stats);
stats->totalDeferredImageCacheHitCount =
rendering_stats_.totalDeferredImageCacheHitCount;
@@ -562,15 +565,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;
+ }
}
}
@@ -772,11 +779,15 @@ void TileManager::RunRasterTask(uint8* buffer,
void TileManager::RunImageDecodeTask(skia::LazyPixelRef* pixel_ref,
RenderingStats* stats) {
TRACE_EVENT0("cc", "TileManager::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;
+ }
}
} // namespace cc
« no previous file with comments | « cc/tile_manager.h ('k') | cc/tiled_layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698