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

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

Issue 2396743002: Leak reports collect information about the memory usage (Closed)
Patch Set: New MetricsMemoryDetails constructor, no histogram data generated 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..f99c4be33ab6690f33316aa7fb251067274c427d 100644
--- a/chrome/browser/metrics/metrics_memory_details.cc
+++ b/chrome/browser/metrics/metrics_memory_details.cc
@@ -56,17 +56,23 @@ 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;
mwlodar 2016/10/12 21:50:52 Deleted as redundant.
-}
+ const base::Closure& callback, MemoryGrowthTracker* memory_growth_tracker)
+ : callback_(callback), memory_growth_tracker_(memory_growth_tracker),
+ generate_histograms_(true) {}
+
+MetricsMemoryDetails::MetricsMemoryDetails(
+ const base::Closure& callback, MemoryGrowthTracker* memory_growth_tracker,
+ bool generate_histograms)
+ : callback_(callback), memory_growth_tracker_(memory_growth_tracker),
+ generate_histograms_(generate_histograms) {}
MetricsMemoryDetails::~MetricsMemoryDetails() {
}
void MetricsMemoryDetails::OnDetailsAvailable() {
- UpdateHistograms();
+ if (generate_histograms_)
+ UpdateHistograms();
+ AnalyzeMemoryGrowth();
Simon Que 2016/10/12 21:15:56 Since AnalyzeMemoryGrowth() is defined in a #if de
mwlodar 2016/10/12 21:50:52 Both should be outside this #if. Fixed.
base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback_);
}
@@ -120,15 +126,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;
}
@@ -310,4 +307,23 @@ void MetricsMemoryDetails::UpdateSwapHistograms() {
swap_info().orig_data_size / swap_info().compr_data_size, 1, 20, 20);
}
}
+
+void MetricsMemoryDetails::AnalyzeMemoryGrowth() {
+ const ProcessData& browser = *ChromeBrowser();
+ for (size_t index = 0; index < browser.processes.size(); index++) {
+ int sample = static_cast<int>(browser.processes[index].working_set.priv);
+
+ int diff;
+ if (memory_growth_tracker_ && memory_growth_tracker_->UpdateSample(
+ browser.processes[index].pid, sample, &diff)) {
+ if (generate_histograms_) {
+ if (diff < 0)
+ UMA_HISTOGRAM_MEMORY_KB("Memory.RendererShrinkIn30Min", -diff);
+ else
+ UMA_HISTOGRAM_MEMORY_KB("Memory.RendererGrowthIn30Min", diff);
+ }
+ }
+ }
+}
+
#endif // defined(OS_CHROMEOS)
« 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