diff options
author | ssid <ssid@chromium.org> | 2015-08-27 09:23:54 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-27 09:23:54 -0700 |
commit | 33c594c9611529ba72474ec52586be65f3e2d76f (patch) | |
tree | ed9445bdb71fe61da7f765bbd037e40962629afc /src/core/SkResourceCache.cpp | |
parent | 85047175508a24f43eef49359bed215a2a3bb104 (diff) |
[tracing] Add support for skia caches to dump memory stats
Dump the memory statistics of resource cache and glyph cache using the
SkTraceMemoryDump interface.
BUG=chromium:503168
Review URL: https://codereview.chromium.org/1313793004
Diffstat (limited to 'src/core/SkResourceCache.cpp')
-rw-r--r-- | src/core/SkResourceCache.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp index 4d2453c71e..7d3c3420db 100644 --- a/src/core/SkResourceCache.cpp +++ b/src/core/SkResourceCache.cpp @@ -11,6 +11,7 @@ #include "SkMutex.h" #include "SkPixelRef.h" #include "SkResourceCache.h" +#include "SkTraceMemoryDump.h" #include <stddef.h> #include <stdlib.h> @@ -669,3 +670,19 @@ static void dump_visitor(const SkResourceCache::Rec& rec, void*) { void SkResourceCache::TestDumpMemoryStatistics() { VisitAll(dump_visitor, nullptr); } + +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); + SkDiscardableMemory* discardable = rec.diagnostic_only_getDiscardable(); + if (discardable) { + dump->setDiscardableMemoryBacking(dump_name.c_str(), *discardable); + } else { + dump->dumpNumericValue(dump_name.c_str(), "size", "bytes", rec.bytesUsed()); + dump->setMemoryBacking(dump_name.c_str(), "malloc", nullptr); + } +} + +void SkResourceCache::DumpMemoryStatistics(SkTraceMemoryDump* dump) { + VisitAll(sk_trace_dump_visitor, dump); +} |