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

Unified Diff: src/core/SkResourceCache.cpp

Issue 1310123007: Add support for light dumps in SkTraceMemoryDump interface. (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: uint. Created 5 years, 3 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: src/core/SkResourceCache.cpp
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp
index 46229fa5bdd987a77a05dff9e8b1964c345c57f9..5099c6a75b7023f5617a562c94bb95bba1725603 100644
--- a/src/core/SkResourceCache.cpp
+++ b/src/core/SkResourceCache.cpp
@@ -675,16 +675,21 @@ 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) {
- VisitAll(sk_trace_dump_visitor, dump);
+ // Since resource could be backed by malloc or discardable, the cache always dumps detailed
+ // stats to be accurate.
+ if (dump->getRequestedDetails() | SkTraceMemoryDump::kMemoryTotals |
+ SkTraceMemoryDump::kDiscardableDetails | SkTraceMemoryDump::kMallocDetails) {
Primiano Tucci (use gerrit) 2015/09/11 17:39:53 This flag check seems wrong. I think you meant her
ssid 2015/09/21 14:24:14 Fixed this to &
+ VisitAll(sk_trace_dump_visitor, dump);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698