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 |
index a8617207dcfc35350496ebf7b27c8d758c891679..b859a1d64b9ece9d86777c3a2a43b957a5017b69 100644 |
--- a/base/trace_event/process_memory_totals_dump_provider.cc |
+++ b/base/trace_event/process_memory_totals_dump_provider.cc |
@@ -55,14 +55,24 @@ ProcessMemoryTotalsDumpProvider::~ProcessMemoryTotalsDumpProvider() { |
// the current process. |
bool ProcessMemoryTotalsDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, |
ProcessMemoryDump* pmd) { |
- const uint64 rss_bytes = rss_bytes_for_testing |
- ? rss_bytes_for_testing |
- : process_metrics_->GetWorkingSetSize(); |
- |
+ uint64 rss_bytes; |
uint64 peak_rss_bytes = 0; |
+ if (UNLIKELY(rss_bytes_for_testing)) { |
+ rss_bytes = rss_bytes_for_testing; |
+#if defined(OS_LINUX) |
Lei Zhang
2015/10/06 21:09:00
I haven't thought about this much, but if there's
ssid
2015/10/07 09:12:15
I cannot remove the ifdef totally since proc_statu
|
+ } else if (proc_status_fd.is_valid()) { |
+ rss_bytes = process_metrics_->GetWorkingSetSize(proc_status_fd.get()); |
+ peak_rss_bytes = |
+ process_metrics_->GetPeakWorkingSetSize(proc_status_fd.get()); |
+#endif |
+ } else { |
+ rss_bytes = process_metrics_->GetWorkingSetSize(); |
#if !defined(OS_IOS) |
- peak_rss_bytes = process_metrics_->GetPeakWorkingSetSize(); |
+ peak_rss_bytes = process_metrics_->GetPeakWorkingSetSize(); |
+#endif |
+ } |
+ |
#if defined(OS_LINUX) || defined(OS_ANDROID) |
if (kernel_supports_rss_peak_reset) { |
// TODO(ssid): Fix crbug.com/461788 to write to the file from sandboxed |
@@ -78,7 +88,6 @@ bool ProcessMemoryTotalsDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, |
close(clear_refs_fd); |
} |
#endif // defined(OS_LINUX) || defined(OS_ANDROID) |
-#endif // !defined(OS_IOS) |
if (rss_bytes > 0) { |
pmd->process_totals()->set_resident_set_bytes(rss_bytes); |