Commit 947c9710 authored by Brian Geffon's avatar Brian Geffon Committed by Commit Bot

PM: Add UMA metrics for WorkingSetTrim

Add to simple UMA metrics so we can better track the frequency that working set trim is used.

Bug: b:169771540
Change-Id: I77b9bb5d7bd17207b08513429748e90cc82f6d08
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2441313Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Commit-Queue: Brian Geffon <bgeffon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#812464}
parent 84d8dbe7
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/strcat.h" #include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "chrome/browser/performance_manager/mechanisms/working_set_trimmer.h" #include "chrome/browser/performance_manager/mechanisms/working_set_trimmer.h"
...@@ -87,7 +88,11 @@ void WorkingSetTrimmerPolicy::SetLastTrimTime(const ProcessNode* process_node, ...@@ -87,7 +88,11 @@ void WorkingSetTrimmerPolicy::SetLastTrimTime(const ProcessNode* process_node,
bool WorkingSetTrimmerPolicy::TrimWorkingSet(const ProcessNode* process_node) { bool WorkingSetTrimmerPolicy::TrimWorkingSet(const ProcessNode* process_node) {
auto* trimmer = mechanism::WorkingSetTrimmer::GetInstance(); auto* trimmer = mechanism::WorkingSetTrimmer::GetInstance();
DCHECK(trimmer); DCHECK(trimmer);
static int renderers_trimmed = 0;
if (process_node->GetProcess().IsValid()) { if (process_node->GetProcess().IsValid()) {
UMA_HISTOGRAM_COUNTS_10000("Memory.WorkingSetTrim.RendererTrimCount",
++renderers_trimmed);
SetLastTrimTimeNow(process_node); SetLastTrimTimeNow(process_node);
return trimmer->TrimWorkingSet(process_node); return trimmer->TrimWorkingSet(process_node);
} }
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.h" #include "chrome/browser/performance_manager/policies/working_set_trimmer_policy_chromeos.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/metrics/histogram_macros.h"
#include "base/rand_util.h" #include "base/rand_util.h"
#include "chrome/browser/chromeos/arc/arc_util.h" #include "chrome/browser/chromeos/arc/arc_util.h"
#include "chrome/browser/chromeos/arc/process/arc_process.h" #include "chrome/browser/chromeos/arc/process/arc_process.h"
...@@ -162,6 +163,10 @@ bool WorkingSetTrimmerPolicyChromeOS::IsArcProcessEligibleForReclaim( ...@@ -162,6 +163,10 @@ bool WorkingSetTrimmerPolicyChromeOS::IsArcProcessEligibleForReclaim(
bool WorkingSetTrimmerPolicyChromeOS::TrimArcProcess(base::ProcessId pid) { bool WorkingSetTrimmerPolicyChromeOS::TrimArcProcess(base::ProcessId pid) {
SetArcProcessLastTrimTime(pid, base::TimeTicks::Now()); SetArcProcessLastTrimTime(pid, base::TimeTicks::Now());
static int arc_processes_trimmed = 0;
UMA_HISTOGRAM_COUNTS_10000("Memory.WorkingSetTrim.ArcProcessTrimCount",
++arc_processes_trimmed);
auto* trimmer = static_cast<mechanism::WorkingSetTrimmerChromeOS*>( auto* trimmer = static_cast<mechanism::WorkingSetTrimmerChromeOS*>(
mechanism::WorkingSetTrimmer::GetInstance()); mechanism::WorkingSetTrimmer::GetInstance());
return trimmer->TrimWorkingSet(pid); return trimmer->TrimWorkingSet(pid);
......
...@@ -2221,6 +2221,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -2221,6 +2221,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary> </summary>
</histogram> </histogram>
<histogram name="Memory.WorkingSetTrim.ArcProcessTrimCount"
units="ProcessesTrimmed" expires_after="M95">
<owner>bgeffon@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
Cumulative number of ARC processes trimmed during a user's session, recorded
each time an ARC process is trimmed. Available on ChromeOS.
</summary>
</histogram>
<histogram name="Memory.WorkingSetTrim.RendererTrimCount"
units="RenderersTrimmed" expires_after="M95">
<owner>bgeffon@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
Cumulative number of renderers trimmed during a user's session, recorded
each time a renderer is trimmed. Available on Windows and ChromeOS.
</summary>
</histogram>
<histogram name="MemoryAndroid.DeviceMemoryClass" units="units" <histogram name="MemoryAndroid.DeviceMemoryClass" units="units"
expires_after="2020-06-07"> expires_after="2020-06-07">
<owner>hajimehoshi@chromium.org</owner> <owner>hajimehoshi@chromium.org</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