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

Unified Diff: third_party/WebKit/Source/platform/PartitionAllocMemoryDumpProvider.cpp

Issue 1375643002: [tracing] directly use memory-infra from blink -> base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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: third_party/WebKit/Source/platform/PartitionAllocMemoryDumpProvider.cpp
diff --git a/third_party/WebKit/Source/platform/PartitionAllocMemoryDumpProvider.cpp b/third_party/WebKit/Source/platform/PartitionAllocMemoryDumpProvider.cpp
index 3f5dd7c48d0177125c6eb69e26ee4419b34ee1dc..58b81e49f86619ccd30f0415ba74727b1a1d2070 100644
--- a/third_party/WebKit/Source/platform/PartitionAllocMemoryDumpProvider.cpp
+++ b/third_party/WebKit/Source/platform/PartitionAllocMemoryDumpProvider.cpp
@@ -5,8 +5,9 @@
#include "config.h"
#include "platform/PartitionAllocMemoryDumpProvider.h"
-#include "public/platform/WebMemoryAllocatorDump.h"
-#include "public/platform/WebProcessMemoryDump.h"
+#include "base/trace_event/memory_allocator_dump.h"
+#include "base/trace_event/process_memory_dump.h"
+#include "public/platform/WebString.h"
#include "wtf/Partitions.h"
namespace blink {
@@ -23,12 +24,16 @@ String getPartitionDumpName(const char* partitionName)
return String::format("%s/%s/%s", kPartitionAllocDumpName, kPartitionsDumpName, partitionName);
}
+std::string ToStdString(const String& str) {
+ return std::string(reinterpret_cast<const char*>(str.ascii().data()));
esprehn 2015/09/28 18:03:14 This cast doesn't make sense, data() is already a
Primiano Tucci (use gerrit) 2015/09/28 19:07:40 Yeah, just a leftover of doing character8() which
+}
+
// This class is used to invert the dependency of PartitionAlloc on the
// PartitionAllocMemoryDumpProvider. This implements an interface that will
// be called with memory statistics for each bucket in the allocator.
class PartitionStatsDumperImpl final : public PartitionStatsDumper {
public:
- PartitionStatsDumperImpl(WebProcessMemoryDump* memoryDump, WebMemoryDumpLevelOfDetail levelOfDetail)
+ PartitionStatsDumperImpl(base::trace_event::ProcessMemoryDump* memoryDump, base::trace_event::MemoryDumpLevelOfDetail levelOfDetail)
: m_memoryDump(memoryDump)
, m_uid(0)
, m_totalActiveBytes(0)
@@ -42,7 +47,7 @@ public:
size_t totalActiveBytes() const { return m_totalActiveBytes; }
private:
- WebProcessMemoryDump* m_memoryDump;
+ base::trace_event::ProcessMemoryDump* m_memoryDump;
unsigned long m_uid;
size_t m_totalActiveBytes;
};
@@ -50,8 +55,7 @@ private:
void PartitionStatsDumperImpl::partitionDumpTotals(const char* partitionName, const PartitionMemoryStats* memoryStats)
{
m_totalActiveBytes += memoryStats->totalActiveBytes;
- String dumpName = getPartitionDumpName(partitionName);
- WebMemoryAllocatorDump* allocatorDump = m_memoryDump->createMemoryAllocatorDump(dumpName);
+ base::trace_event::MemoryAllocatorDump* allocatorDump = m_memoryDump->CreateAllocatorDump(ToStdString(getPartitionDumpName(partitionName)));
allocatorDump->AddScalar("size", "bytes", memoryStats->totalResidentBytes);
allocatorDump->AddScalar("allocated_objects_size", "bytes", memoryStats->totalActiveBytes);
allocatorDump->AddScalar("virtual_size", "bytes", memoryStats->totalMmappedBytes);
@@ -69,7 +73,7 @@ void PartitionStatsDumperImpl::partitionsDumpBucketStats(const char* partitionNa
else
dumpName.append(String::format("/bucket_%u", static_cast<unsigned>(memoryStats->bucketSlotSize)));
- WebMemoryAllocatorDump* allocatorDump = m_memoryDump->createMemoryAllocatorDump(dumpName);
+ base::trace_event::MemoryAllocatorDump* allocatorDump = m_memoryDump->CreateAllocatorDump(ToStdString(dumpName));
allocatorDump->AddScalar("size", "bytes", memoryStats->residentBytes);
allocatorDump->AddScalar("allocated_objects_size", "bytes", memoryStats->activeBytes);
allocatorDump->AddScalar("slot_size", "bytes", memoryStats->bucketSlotSize);
@@ -90,18 +94,19 @@ PartitionAllocMemoryDumpProvider* PartitionAllocMemoryDumpProvider::instance()
return &instance;
}
-bool PartitionAllocMemoryDumpProvider::onMemoryDump(WebMemoryDumpLevelOfDetail levelOfDetail, WebProcessMemoryDump* memoryDump)
+bool PartitionAllocMemoryDumpProvider::OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
+ base::trace_event::ProcessMemoryDump* memoryDump)
{
- PartitionStatsDumperImpl partitionStatsDumper(memoryDump, levelOfDetail);
+ PartitionStatsDumperImpl partitionStatsDumper(memoryDump, args.level_of_detail);
- WebMemoryAllocatorDump* partitionsDump = memoryDump->createMemoryAllocatorDump(
- String::format("%s/%s", kPartitionAllocDumpName, kPartitionsDumpName));
+ base::trace_event::MemoryAllocatorDump* partitionsDump = memoryDump->CreateAllocatorDump(
+ ToStdString(String::format("%s/%s", kPartitionAllocDumpName, kPartitionsDumpName)));
// This method calls memoryStats.partitionsDumpBucketStats with memory statistics.
- WTF::Partitions::dumpMemoryStats(levelOfDetail == WebMemoryDumpLevelOfDetail::Light, &partitionStatsDumper);
+ WTF::Partitions::dumpMemoryStats(args.level_of_detail == base::trace_event::MemoryDumpLevelOfDetail::LIGHT, &partitionStatsDumper);
- WebMemoryAllocatorDump* allocatedObjectsDump = memoryDump->createMemoryAllocatorDump(
- String::format("%s/allocated_objects", kPartitionAllocDumpName));
+ base::trace_event::MemoryAllocatorDump* allocatedObjectsDump = memoryDump->CreateAllocatorDump(
+ ToStdString(String::format("%s/allocated_objects", kPartitionAllocDumpName)));
allocatedObjectsDump->AddScalar("size", "bytes", partitionStatsDumper.totalActiveBytes());
memoryDump->AddOwnershipEdge(allocatedObjectsDump->guid(), partitionsDump->guid());

Powered by Google App Engine
This is Rietveld 408576698