Commit 018be5c3 authored by erikchen's avatar erikchen Committed by Commit bot

Add a histogram for total private memory footprint.

Also update tests to check for private memory footprint on Windows, which is now
implemented.

BUG=

Review-Url: https://codereview.chromium.org/2904703002
Cr-Commit-Position: refs/heads/master@{#474931}
parent e80c576c
...@@ -83,7 +83,9 @@ void ProcessMemoryMetricsEmitter::ReceivedMemoryDump( ...@@ -83,7 +83,9 @@ void ProcessMemoryMetricsEmitter::ReceivedMemoryDump(
if (!ptr) if (!ptr)
return; return;
uint32_t private_footprint_total_kb = 0;
for (const ProcessMemoryDumpPtr& pmd : ptr->process_dumps) { for (const ProcessMemoryDumpPtr& pmd : ptr->process_dumps) {
private_footprint_total_kb += pmd->private_footprint;
switch (pmd->process_type) { switch (pmd->process_type) {
case memory_instrumentation::mojom::ProcessType::BROWSER: case memory_instrumentation::mojom::ProcessType::BROWSER:
EmitBrowserMemoryMetrics(pmd); EmitBrowserMemoryMetrics(pmd);
...@@ -100,4 +102,7 @@ void ProcessMemoryMetricsEmitter::ReceivedMemoryDump( ...@@ -100,4 +102,7 @@ void ProcessMemoryMetricsEmitter::ReceivedMemoryDump(
break; break;
} }
} }
UMA_HISTOGRAM_MEMORY_LARGE_MB(
"Memory.Experimental.Total2.PrivateMemoryFootprint",
private_footprint_total_kb / 1024);
} }
...@@ -86,19 +86,12 @@ void CheckMemoryMetric(const std::string& name, ...@@ -86,19 +86,12 @@ void CheckMemoryMetric(const std::string& name,
void CheckAllMemoryMetrics(const base::HistogramTester& histogram_tester, void CheckAllMemoryMetrics(const base::HistogramTester& histogram_tester,
int count) { int count) {
#if (defined(OS_MACOSX) && !defined(OS_IOS)) || defined(OS_LINUX) || \
defined(OS_ANDROID)
bool private_footprint_implemented = true;
#else
bool private_footprint_implemented = false;
#endif
CheckMemoryMetric("Memory.Experimental.Browser2.Malloc", histogram_tester, CheckMemoryMetric("Memory.Experimental.Browser2.Malloc", histogram_tester,
count, true); count, true);
CheckMemoryMetric("Memory.Experimental.Browser2.Resident", histogram_tester, CheckMemoryMetric("Memory.Experimental.Browser2.Resident", histogram_tester,
count, true); count, true);
CheckMemoryMetric("Memory.Experimental.Browser2.PrivateMemoryFootprint", CheckMemoryMetric("Memory.Experimental.Browser2.PrivateMemoryFootprint",
histogram_tester, count, private_footprint_implemented); histogram_tester, count, true);
CheckMemoryMetric("Memory.Experimental.Renderer2.Malloc", histogram_tester, CheckMemoryMetric("Memory.Experimental.Renderer2.Malloc", histogram_tester,
count, true); count, true);
CheckMemoryMetric("Memory.Experimental.Renderer2.Resident", histogram_tester, CheckMemoryMetric("Memory.Experimental.Renderer2.Resident", histogram_tester,
...@@ -110,7 +103,9 @@ void CheckAllMemoryMetrics(const base::HistogramTester& histogram_tester, ...@@ -110,7 +103,9 @@ void CheckAllMemoryMetrics(const base::HistogramTester& histogram_tester,
CheckMemoryMetric("Memory.Experimental.Renderer2.V8", histogram_tester, count, CheckMemoryMetric("Memory.Experimental.Renderer2.V8", histogram_tester, count,
true); true);
CheckMemoryMetric("Memory.Experimental.Renderer2.PrivateMemoryFootprint", CheckMemoryMetric("Memory.Experimental.Renderer2.PrivateMemoryFootprint",
histogram_tester, count, private_footprint_implemented); histogram_tester, count, true);
CheckMemoryMetric("Memory.Experimental.Total2.PrivateMemoryFootprint",
histogram_tester, count, true);
} }
} // namespace } // namespace
......
...@@ -30455,6 +30455,13 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -30455,6 +30455,13 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</summary> </summary>
</histogram> </histogram>
<histogram name="Memory.Experimental.Total2.PrivateMemoryFootprint" units="MB">
<owner>erikchen@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of all processes.
</summary>
</histogram>
<histogram name="Memory.Extension" units="KB"> <histogram name="Memory.Extension" units="KB">
<owner>hajimehoshi@chromium.org</owner> <owner>hajimehoshi@chromium.org</owner>
<owner>kenjibaheux@google.com</owner> <owner>kenjibaheux@google.com</owner>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment