Index: base/trace_event/process_memory_totals_dump_provider.cc |
diff --git a/base/trace_event/process_memory_totals_dump_provider.cc b/base/trace_event/process_memory_totals_dump_provider.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4143a58381cdf301e138a451b1e773c5aa4884d2 |
--- /dev/null |
+++ b/base/trace_event/process_memory_totals_dump_provider.cc |
@@ -0,0 +1,38 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/trace_event/process_memory_totals_dump_provider.h" |
+ |
+#include "base/process/process_metrics.h" |
+#include "base/trace_event/process_memory_dump.h" |
+#include "base/trace_event/process_memory_totals.h" |
+ |
+namespace base { |
+namespace trace_event { |
+ |
+// static |
+ProcessMemoryTotalsDumpProvider* |
+ProcessMemoryTotalsDumpProvider::GetInstance() { |
+ return Singleton< |
+ ProcessMemoryTotalsDumpProvider, |
+ LeakySingletonTraits<ProcessMemoryTotalsDumpProvider>>::get(); |
+} |
+ |
+ProcessMemoryTotalsDumpProvider::ProcessMemoryTotalsDumpProvider() |
+ : process_metrics_( |
+ ProcessMetrics::CreateProcessMetrics(GetCurrentProcessHandle())) { |
+} |
+ |
+ProcessMemoryTotalsDumpProvider::~ProcessMemoryTotalsDumpProvider() { |
+} |
+ |
+// Called at trace dump point time. Creates a snapshot the memory counters for |
+// the current process. |
+void ProcessMemoryTotalsDumpProvider::DumpInto(ProcessMemoryDump* pmd) { |
+ const uint64 rss_bytes = process_metrics_->GetWorkingSetSize(); |
dsinclair
2015/02/18 18:42:30
So, do the process_metrics_ get updated or are the
Primiano Tucci (use gerrit)
2015/02/18 18:47:59
process_metrics_ is the (base::) object which is a
|
+ pmd->SetProcessTotals(make_scoped_ptr(new ProcessMemoryTotals(rss_bytes))); |
+} |
+ |
+} // namespace trace_event |
+} // namespace base |