aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkResourceCache.cpp
diff options
context:
space:
mode:
authorGravatar ssid <ssid@chromium.org>2015-09-30 04:31:23 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-09-30 04:31:23 -0700
commitf0c986503b982cfbd4d859573c11bc2a154b42f5 (patch)
treed866b873bd06634a572f9358d23c06a4ae5b183b /src/core/SkResourceCache.cpp
parentb39abc4d7661733edeaad379dddac75defe67dd4 (diff)
Add support for light dumps in SkTraceMemoryDump interface.
SkGlyphCache dumps too many glyphs, and to reduce the trace size, RequestDetails enum is added to SkTraceMemoryDump interface. This would tell caches to dump only requested details or not a detailed dump. BUG=499731 Review URL: https://codereview.chromium.org/1310123007
Diffstat (limited to 'src/core/SkResourceCache.cpp')
-rw-r--r--src/core/SkResourceCache.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp
index 54091f1fd4..a1234e1fef 100644
--- a/src/core/SkResourceCache.cpp
+++ b/src/core/SkResourceCache.cpp
@@ -675,16 +675,18 @@ void SkResourceCache::TestDumpMemoryStatistics() {
static void sk_trace_dump_visitor(const SkResourceCache::Rec& rec, void* context) {
SkTraceMemoryDump* dump = static_cast<SkTraceMemoryDump*>(context);
- SkString dump_name = SkStringPrintf("skia/sk_resource_cache/%s_%p", rec.getCategory(), &rec);
+ SkString dumpName = SkStringPrintf("skia/sk_resource_cache/%s_%p", rec.getCategory(), &rec);
SkDiscardableMemory* discardable = rec.diagnostic_only_getDiscardable();
if (discardable) {
- dump->setDiscardableMemoryBacking(dump_name.c_str(), *discardable);
+ dump->setDiscardableMemoryBacking(dumpName.c_str(), *discardable);
} else {
- dump->dumpNumericValue(dump_name.c_str(), "size", "bytes", rec.bytesUsed());
- dump->setMemoryBacking(dump_name.c_str(), "malloc", nullptr);
+ dump->dumpNumericValue(dumpName.c_str(), "size", "bytes", rec.bytesUsed());
+ dump->setMemoryBacking(dumpName.c_str(), "malloc", nullptr);
}
}
void SkResourceCache::DumpMemoryStatistics(SkTraceMemoryDump* dump) {
+ // Since resource could be backed by malloc or discardable, the cache always dumps detailed
+ // stats to be accurate.
VisitAll(sk_trace_dump_visitor, dump);
}