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

Side by Side Diff: base/trace_event/process_memory_totals_dump_provider.cc

Issue 1128733002: Update from https://crrev.com/328418 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/trace_event/process_memory_totals_dump_provider.h" 5 #include "base/trace_event/process_memory_totals_dump_provider.h"
6 6
7 #include "base/process/process_metrics.h" 7 #include "base/process/process_metrics.h"
8 #include "base/trace_event/process_memory_dump.h" 8 #include "base/trace_event/process_memory_dump.h"
9 #include "base/trace_event/process_memory_totals.h" 9 #include "base/trace_event/process_memory_totals.h"
10 10
11 namespace base { 11 namespace base {
12 namespace trace_event { 12 namespace trace_event {
13 13
14 // static 14 // static
15 uint64 ProcessMemoryTotalsDumpProvider::rss_bytes_for_testing = 0; 15 uint64 ProcessMemoryTotalsDumpProvider::rss_bytes_for_testing = 0;
16 16
17 namespace { 17 namespace {
18 18
19 const char kDumperFriendlyName[] = "ProcessMemoryTotals";
20
21 ProcessMetrics* CreateProcessMetricsForCurrentProcess() { 19 ProcessMetrics* CreateProcessMetricsForCurrentProcess() {
22 #if !defined(OS_MACOSX) || defined(OS_IOS) 20 #if !defined(OS_MACOSX) || defined(OS_IOS)
23 return ProcessMetrics::CreateProcessMetrics(GetCurrentProcessHandle()); 21 return ProcessMetrics::CreateProcessMetrics(GetCurrentProcessHandle());
24 #else 22 #else
25 return ProcessMetrics::CreateProcessMetrics(GetCurrentProcessHandle(), NULL); 23 return ProcessMetrics::CreateProcessMetrics(GetCurrentProcessHandle(), NULL);
26 #endif 24 #endif
27 } 25 }
28 } // namespace 26 } // namespace
29 27
30 // static 28 // static
31 ProcessMemoryTotalsDumpProvider* 29 ProcessMemoryTotalsDumpProvider*
32 ProcessMemoryTotalsDumpProvider::GetInstance() { 30 ProcessMemoryTotalsDumpProvider::GetInstance() {
33 return Singleton< 31 return Singleton<
34 ProcessMemoryTotalsDumpProvider, 32 ProcessMemoryTotalsDumpProvider,
35 LeakySingletonTraits<ProcessMemoryTotalsDumpProvider>>::get(); 33 LeakySingletonTraits<ProcessMemoryTotalsDumpProvider>>::get();
36 } 34 }
37 35
38 ProcessMemoryTotalsDumpProvider::ProcessMemoryTotalsDumpProvider() 36 ProcessMemoryTotalsDumpProvider::ProcessMemoryTotalsDumpProvider()
39 : process_metrics_(CreateProcessMetricsForCurrentProcess()) { 37 : process_metrics_(CreateProcessMetricsForCurrentProcess()) {
40 } 38 }
41 39
42 ProcessMemoryTotalsDumpProvider::~ProcessMemoryTotalsDumpProvider() { 40 ProcessMemoryTotalsDumpProvider::~ProcessMemoryTotalsDumpProvider() {
43 } 41 }
44 42
45 // Called at trace dump point time. Creates a snapshot the memory counters for 43 // Called at trace dump point time. Creates a snapshot the memory counters for
46 // the current process. 44 // the current process.
47 bool ProcessMemoryTotalsDumpProvider::DumpInto(ProcessMemoryDump* pmd) { 45 bool ProcessMemoryTotalsDumpProvider::OnMemoryDump(ProcessMemoryDump* pmd) {
48 const uint64 rss_bytes = rss_bytes_for_testing 46 const uint64 rss_bytes = rss_bytes_for_testing
49 ? rss_bytes_for_testing 47 ? rss_bytes_for_testing
50 : process_metrics_->GetWorkingSetSize(); 48 : process_metrics_->GetWorkingSetSize();
51 49
52 if (rss_bytes > 0) { 50 if (rss_bytes > 0) {
53 pmd->process_totals()->set_resident_set_bytes(rss_bytes); 51 pmd->process_totals()->set_resident_set_bytes(rss_bytes);
54 pmd->set_has_process_totals(); 52 pmd->set_has_process_totals();
55 return true; 53 return true;
56 } 54 }
57 55
58 return false; 56 return false;
59 } 57 }
60 58
61 const char* ProcessMemoryTotalsDumpProvider::GetFriendlyName() const {
62 return kDumperFriendlyName;
63 }
64
65 } // namespace trace_event 59 } // namespace trace_event
66 } // namespace base 60 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698