aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkResourceCache.cpp
diff options
context:
space:
mode:
authorGravatar ssid <ssid@chromium.org>2015-08-27 09:23:54 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-27 09:23:54 -0700
commit33c594c9611529ba72474ec52586be65f3e2d76f (patch)
treeed9445bdb71fe61da7f765bbd037e40962629afc /src/core/SkResourceCache.cpp
parent85047175508a24f43eef49359bed215a2a3bb104 (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.cpp17
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);
+}