summaryrefslogtreecommitdiffstats
path: root/cc/resources
diff options
context:
space:
mode:
authorreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-14 23:10:03 +0000
committerreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-14 23:10:03 +0000
commit7accf223e52b764c3be5400afa74e81e5e6f0c53 (patch)
treee86576d466dc0ba8f4e12f778640b5873350e4b6 /cc/resources
parent1901cab34964e4c4d2a3e2fe8e4f0d15d9c7e15b (diff)
downloadchromium_src-7accf223e52b764c3be5400afa74e81e5e6f0c53.zip
chromium_src-7accf223e52b764c3be5400afa74e81e5e6f0c53.tar.gz
chromium_src-7accf223e52b764c3be5400afa74e81e5e6f0c53.tar.bz2
cc: Add tracing for unused memory in resource pool.
This includes the amount of unused memory in the resource pool in "DidManage" traces and adds a trace counter that is updated each time ManageTiles is called. BUG=272453 Review URL: https://chromiumcodereview.appspot.com/23208002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217686 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources')
-rw-r--r--cc/resources/resource_pool.h3
-rw-r--r--cc/resources/tile_manager.cc13
-rw-r--r--cc/resources/tile_manager.h1
3 files changed, 15 insertions, 2 deletions
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h
index 2304a50..309bf33 100644
--- a/cc/resources/resource_pool.h
+++ b/cc/resources/resource_pool.h
@@ -44,6 +44,9 @@ class CC_EXPORT ResourcePool {
size_t max_unused_memory_usage_bytes,
size_t num_resources_limit);
+ size_t total_memory_usage_bytes() const {
+ return memory_usage_bytes_;
+ }
size_t acquired_memory_usage_bytes() const {
return memory_usage_bytes_ - unused_memory_usage_bytes_;
}
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index 9968195..7cf5096 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -362,12 +362,16 @@ void TileManager::ManageTiles() {
&tiles_that_need_to_be_rasterized);
CleanUpUnusedImageDecodeTasks();
+ // Finally, schedule rasterizer tasks.
+ ScheduleTasks(tiles_that_need_to_be_rasterized);
+
TRACE_EVENT_INSTANT1(
"cc", "DidManage", TRACE_EVENT_SCOPE_THREAD,
"state", TracedValue::FromValue(BasicStateAsValue().release()));
- // Finally, schedule rasterizer tasks.
- ScheduleTasks(tiles_that_need_to_be_rasterized);
+ TRACE_COUNTER_ID1("cc", "unused_memory_bytes", this,
+ resource_pool_->total_memory_usage_bytes() -
+ resource_pool_->acquired_memory_usage_bytes());
}
bool TileManager::UpdateVisibleTiles() {
@@ -390,9 +394,11 @@ bool TileManager::UpdateVisibleTiles() {
void TileManager::GetMemoryStats(
size_t* memory_required_bytes,
size_t* memory_nice_to_have_bytes,
+ size_t* memory_allocated_bytes,
size_t* memory_used_bytes) const {
*memory_required_bytes = 0;
*memory_nice_to_have_bytes = 0;
+ *memory_allocated_bytes = resource_pool_->total_memory_usage_bytes();
*memory_used_bytes = resource_pool_->acquired_memory_usage_bytes();
for (TileMap::const_iterator it = tiles_.begin();
it != tiles_.end();
@@ -439,13 +445,16 @@ scoped_ptr<base::Value> TileManager::GetMemoryRequirementsAsValue() const {
size_t memory_required_bytes;
size_t memory_nice_to_have_bytes;
+ size_t memory_allocated_bytes;
size_t memory_used_bytes;
GetMemoryStats(&memory_required_bytes,
&memory_nice_to_have_bytes,
+ &memory_allocated_bytes,
&memory_used_bytes);
requirements->SetInteger("memory_required_bytes", memory_required_bytes);
requirements->SetInteger("memory_nice_to_have_bytes",
memory_nice_to_have_bytes);
+ requirements->SetInteger("memory_allocated_bytes", memory_allocated_bytes);
requirements->SetInteger("memory_used_bytes", memory_used_bytes);
return requirements.PassAs<base::Value>();
}
diff --git a/cc/resources/tile_manager.h b/cc/resources/tile_manager.h
index 2e226c9..7957fc8 100644
--- a/cc/resources/tile_manager.h
+++ b/cc/resources/tile_manager.h
@@ -69,6 +69,7 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient {
scoped_ptr<base::Value> AllTilesAsValue() const;
void GetMemoryStats(size_t* memory_required_bytes,
size_t* memory_nice_to_have_bytes,
+ size_t* memory_allocated_bytes,
size_t* memory_used_bytes) const;
const MemoryHistory::Entry& memory_stats_from_last_assign() const {