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

Unified Diff: chrome/browser/metrics/metrics_memory_details.cc

Issue 2396743002: Leak reports collect information about the memory usage (Closed)
Patch Set: Added setter for |generate_histograms_| Created 4 years, 2 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
« no previous file with comments | « chrome/browser/metrics/metrics_memory_details.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/metrics_memory_details.cc
diff --git a/chrome/browser/metrics/metrics_memory_details.cc b/chrome/browser/metrics/metrics_memory_details.cc
index f8ccb556074e1419b88758d1fd1ffa04f65a2f80..de76fc190095519e8b9d82ae9e95110985208b59 100644
--- a/chrome/browser/metrics/metrics_memory_details.cc
+++ b/chrome/browser/metrics/metrics_memory_details.cc
@@ -58,15 +58,17 @@ bool MemoryGrowthTracker::UpdateSample(base::ProcessId pid,
MetricsMemoryDetails::MetricsMemoryDetails(
const base::Closure& callback,
MemoryGrowthTracker* memory_growth_tracker)
- : callback_(callback), memory_growth_tracker_(memory_growth_tracker) {
- memory_growth_tracker_ = memory_growth_tracker;
-}
+ : callback_(callback),
+ memory_growth_tracker_(memory_growth_tracker),
+ generate_histograms_(true) {}
MetricsMemoryDetails::~MetricsMemoryDetails() {
}
void MetricsMemoryDetails::OnDetailsAvailable() {
- UpdateHistograms();
+ if (generate_histograms_)
+ UpdateHistograms();
+ AnalyzeMemoryGrowth();
base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback_);
}
@@ -120,15 +122,6 @@ void MetricsMemoryDetails::UpdateHistograms() {
sample / 1024);
UMA_HISTOGRAM_MEMORY_LARGE_MB("Memory.Renderer.Committed",
committed / 1024);
- int diff;
- if (memory_growth_tracker_ &&
- memory_growth_tracker_->UpdateSample(
- browser.processes[index].pid, sample, &diff)) {
- if (diff < 0)
- UMA_HISTOGRAM_MEMORY_KB("Memory.RendererShrinkIn30Min", -diff);
- else
- UMA_HISTOGRAM_MEMORY_KB("Memory.RendererGrowthIn30Min", diff);
- }
renderer_count++;
continue;
}
@@ -311,3 +304,22 @@ void MetricsMemoryDetails::UpdateSwapHistograms() {
}
}
#endif // defined(OS_CHROMEOS)
+
+void MetricsMemoryDetails::AnalyzeMemoryGrowth() {
+ for (const auto& process_entry : ChromeBrowser()->processes) {
+ int sample = static_cast<int>(process_entry.working_set.priv);
+ int diff;
+
+ // UpdateSample changes state of |memory_growth_tracker_| and it should be
+ // called even if |generate_histograms_| is false.
+ if (memory_growth_tracker_ &&
+ memory_growth_tracker_->UpdateSample(process_entry.pid, sample,
+ &diff) &&
+ generate_histograms_) {
+ if (diff < 0)
+ UMA_HISTOGRAM_MEMORY_KB("Memory.RendererShrinkIn30Min", -diff);
+ else
+ UMA_HISTOGRAM_MEMORY_KB("Memory.RendererGrowthIn30Min", diff);
+ }
+ }
+}
« no previous file with comments | « chrome/browser/metrics/metrics_memory_details.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698