Chromium Code Reviews| 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. |