Index: skia/ext/skia_memory_dump_provider.cc |
diff --git a/skia/ext/skia_memory_dump_provider.cc b/skia/ext/skia_memory_dump_provider.cc |
index a7c445fd5d4f1f9b34865ac3162a3b7bf0a1688e..a83f80bef0dcf6865834211ea613dfe159b7f678 100644 |
--- a/skia/ext/skia_memory_dump_provider.cc |
+++ b/skia/ext/skia_memory_dump_provider.cc |
@@ -4,14 +4,51 @@ |
#include "skia_memory_dump_provider.h" |
+#include "base/strings/stringprintf.h" |
#include "base/trace_event/memory_allocator_dump.h" |
#include "base/trace_event/memory_dump_manager.h" |
#include "base/trace_event/process_memory_dump.h" |
#include "third_party/skia/include/core/SkGraphics.h" |
+#include "third_party/skia/include/core/SkGlyphCacheStats.h" |
petrcermak
2015/07/28 19:40:29
nit: I think this should come before the include o
ssid
2015/07/28 20:19:11
I would expect upload to give me error. Fixed it,
|
#include "third_party/skia/src/core/SkResourceCache.h" |
namespace skia { |
+namespace { |
+ |
+const char kFontCacheDumpName[] = "skia/sk_font_cache"; |
+ |
+class SkiaGlyphCacheDumper : public SkGlyphCacheStatsDumper { |
+ public: |
+ SkiaGlyphCacheDumper( |
+ base::trace_event::ProcessMemoryDump* process_memory_dump); |
+ |
+ // SkGlyphCacheStatsDumper implementation: |
+ void DumpStats(const char* uniqueName, const size_t memoryUsed) override; |
+ |
+ private: |
+ base::trace_event::ProcessMemoryDump* process_memory_dump_; |
+}; |
+ |
+SkiaGlyphCacheDumper::SkiaGlyphCacheDumper( |
+ base::trace_event::ProcessMemoryDump* process_memory_dump) |
+ : process_memory_dump_(process_memory_dump) {} |
+ |
+void SkiaGlyphCacheDumper::DumpStats(const char* uniqueName, |
+ const size_t memoryUsed) { |
+ auto cache_mad = process_memory_dump_->CreateAllocatorDump( |
+ base::StringPrintf("%s/%s", kFontCacheDumpName, uniqueName)); |
+ |
+ cache_mad->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |
petrcermak
2015/07/28 19:40:29
nit: I'd find this more readable if both calls had
ssid
2015/07/28 20:19:11
Hm, it was git cl format. I don't want to touch th
|
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
+ memoryUsed); |
+ cache_mad->AddScalar( |
+ base::trace_event::MemoryAllocatorDump::kNameObjectsCount, |
+ base::trace_event::MemoryAllocatorDump::kUnitsObjects, 1u); |
+} |
+ |
+} // namespace |
+ |
// static |
SkiaMemoryDumpProvider* SkiaMemoryDumpProvider::GetInstance() { |
return Singleton<SkiaMemoryDumpProvider, |
@@ -24,14 +61,21 @@ SkiaMemoryDumpProvider::~SkiaMemoryDumpProvider() {} |
bool SkiaMemoryDumpProvider::OnMemoryDump( |
base::trace_event::ProcessMemoryDump* process_memory_dump) { |
- auto font_mad = |
- process_memory_dump->CreateAllocatorDump("skia/sk_font_cache"); |
- font_mad->AddScalar("size", "bytes", SkGraphics::GetFontCacheUsed()); |
- font_mad->AddScalar("count", "objects", SkGraphics::GetFontCacheCountUsed()); |
+ auto font_mad = process_memory_dump->CreateAllocatorDump(kFontCacheDumpName); |
+ font_mad->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
+ SkGraphics::GetFontCacheUsed()); |
+ font_mad->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectsCount, |
+ base::trace_event::MemoryAllocatorDump::kUnitsObjects, |
+ SkGraphics::GetFontCacheCountUsed()); |
+ |
+ SkiaGlyphCacheDumper dumper(process_memory_dump); |
+ DumpSkGlyphCacheStats(&dumper); |
auto resource_mad = |
process_memory_dump->CreateAllocatorDump("skia/sk_resource_cache"); |
petrcermak
2015/07/28 19:40:29
nit: I'd factor this dump name out into a constant
ssid
2015/07/28 20:19:11
Done.
|
- resource_mad->AddScalar("size", "bytes", |
+ resource_mad->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
SkResourceCache::GetTotalBytesUsed()); |
// TODO(ssid): crbug.com/503168. Add sub-allocation edges from discardable or |
// malloc memory dumps to avoid double counting. |