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

Unified Diff: content/browser/memory/memory_condition_observer.cc

Issue 2943603002: Remove MemoryCondition::WARNING (Closed)
Patch Set: rebase Created 3 years, 6 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
Index: content/browser/memory/memory_condition_observer.cc
diff --git a/content/browser/memory/memory_condition_observer.cc b/content/browser/memory/memory_condition_observer.cc
index 075beab4ceb377d9ecc2ddea062631898e38d884..a1ae7adc6633fefc52ab66e807556b0d4f067b6b 100644
--- a/content/browser/memory/memory_condition_observer.cc
+++ b/content/browser/memory/memory_condition_observer.cc
@@ -16,48 +16,17 @@ namespace {
// An expected renderer size. These values come from the median of appropriate
// UMA stats.
#if defined(OS_ANDROID) || defined(OS_IOS)
-const int kDefaultExpectedRendererSizeMB = 40;
+const int kExpectedRendererSizeMB = 40;
#elif defined(OS_WIN)
-const int kDefaultExpectedRendererSizeMB = 70;
+const int kExpectedRendererSizeMB = 70;
#else // Mac, Linux, and ChromeOS
-const int kDefaultExpectedRendererSizeMB = 120;
+const int kExpectedRendererSizeMB = 120;
#endif
-// Default values for parameters to determine the global state.
-const int kDefaultNewRenderersUntilWarning = 4;
-const int kDefaultNewRenderersUntilCritical = 2;
-const int kDefaultNewRenderersBackToNormal = 5;
-const int kDefaultNewRenderersBackToWarning = 3;
+const int kNewRenderersUntilCritical = 2;
const int kDefaultMonitoringIntervalSeconds = 1;
const int kMonitoringIntervalBackgroundedSeconds = 120;
-void SetIntVariationParameter(const std::map<std::string, std::string>& params,
- const char* name,
- int* target) {
- const auto& iter = params.find(name);
- if (iter == params.end())
- return;
- int value;
- if (!iter->second.empty() && base::StringToInt(iter->second, &value)) {
- DCHECK(value > 0);
- *target = value;
- }
-}
-
-void SetSecondsVariationParameter(
- const std::map<std::string, std::string>& params,
- const char* name,
- base::TimeDelta* target) {
- const auto& iter = params.find(name);
- if (iter == params.end())
- return;
- int value;
- if (!iter->second.empty() && base::StringToInt(iter->second, &value)) {
- DCHECK(value > 0);
- *target = base::TimeDelta::FromSeconds(value);
- }
-}
-
} // namespace
MemoryConditionObserver::MemoryConditionObserver(
@@ -65,8 +34,12 @@ MemoryConditionObserver::MemoryConditionObserver(
scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: coordinator_(coordinator), task_runner_(task_runner) {
DCHECK(coordinator_);
- InitializeParameters();
- DCHECK(ValidateParameters());
+ monitoring_interval_ =
+ base::TimeDelta::FromSeconds(kDefaultMonitoringIntervalSeconds);
+ monitoring_interval_foregrounded_ =
+ base::TimeDelta::FromSeconds(kDefaultMonitoringIntervalSeconds);
+ monitoring_interval_backgrounded_ =
+ base::TimeDelta::FromSeconds(kMonitoringIntervalBackgroundedSeconds);
}
MemoryConditionObserver::~MemoryConditionObserver() {}
@@ -103,33 +76,9 @@ MemoryCondition MemoryConditionObserver::CalculateNextCondition() {
UMA_HISTOGRAM_MEMORY_LARGE_MB("Memory.Coordinator.FreeMemoryUntilCritical",
available);
- if (available <= 0)
+ int expected_renderer_count = available / kExpectedRendererSizeMB;
+ if (available <= 0 || expected_renderer_count < kNewRenderersUntilCritical)
return MemoryCondition::CRITICAL;
-
- auto current = coordinator_->GetMemoryCondition();
- int expected_renderer_count = available / expected_renderer_size_;
-
- switch (current) {
- case MemoryCondition::NORMAL:
- if (expected_renderer_count <= new_renderers_until_critical_)
- return MemoryCondition::CRITICAL;
- if (expected_renderer_count <= new_renderers_until_warning_)
- return MemoryCondition::WARNING;
- return MemoryCondition::NORMAL;
- case MemoryCondition::WARNING:
- if (expected_renderer_count <= new_renderers_until_critical_)
- return MemoryCondition::CRITICAL;
- if (expected_renderer_count >= new_renderers_back_to_normal_)
- return MemoryCondition::NORMAL;
- return MemoryCondition::WARNING;
- case MemoryCondition::CRITICAL:
- if (expected_renderer_count >= new_renderers_back_to_normal_)
- return MemoryCondition::NORMAL;
- if (expected_renderer_count >= new_renderers_back_to_warning_)
- return MemoryCondition::WARNING;
- return MemoryCondition::CRITICAL;
- }
- NOTREACHED();
return MemoryCondition::NORMAL;
}
@@ -139,46 +88,5 @@ void MemoryConditionObserver::UpdateCondition() {
ScheduleUpdateCondition(monitoring_interval_);
}
-void MemoryConditionObserver::InitializeParameters() {
- expected_renderer_size_ = kDefaultExpectedRendererSizeMB;
- new_renderers_until_warning_ = kDefaultNewRenderersUntilWarning;
- new_renderers_until_critical_ = kDefaultNewRenderersUntilCritical;
- new_renderers_back_to_normal_ = kDefaultNewRenderersBackToNormal;
- new_renderers_back_to_warning_ = kDefaultNewRenderersBackToWarning;
- monitoring_interval_ =
- base::TimeDelta::FromSeconds(kDefaultMonitoringIntervalSeconds);
- monitoring_interval_foregrounded_ =
- base::TimeDelta::FromSeconds(kDefaultMonitoringIntervalSeconds);
- monitoring_interval_backgrounded_ =
- base::TimeDelta::FromSeconds(kMonitoringIntervalBackgroundedSeconds);
-
- // Override default parameters with variations.
- static constexpr char kMemoryCoordinatorV0Trial[] = "MemoryCoordinatorV0";
- std::map<std::string, std::string> params;
- variations::GetVariationParams(kMemoryCoordinatorV0Trial, &params);
- SetIntVariationParameter(params, "expected_renderer_size",
- &expected_renderer_size_);
- SetIntVariationParameter(params, "new_renderers_until_warning",
- &new_renderers_until_warning_);
- SetIntVariationParameter(params, "new_renderers_until_critical",
- &new_renderers_until_critical_);
- SetIntVariationParameter(params, "new_renderers_back_to_normal",
- &new_renderers_back_to_normal_);
- SetIntVariationParameter(params, "new_renderers_back_to_warning",
- &new_renderers_back_to_warning_);
- SetSecondsVariationParameter(params, "monitoring_interval",
- &monitoring_interval_);
- SetSecondsVariationParameter(params, "monitoring_interval_foregrounded",
- &monitoring_interval_foregrounded_);
- SetSecondsVariationParameter(params, "monitoring_interval_backgrounded",
- &monitoring_interval_backgrounded_);
-}
-
-bool MemoryConditionObserver::ValidateParameters() {
- return (new_renderers_until_warning_ > new_renderers_until_critical_) &&
- (new_renderers_back_to_normal_ > new_renderers_back_to_warning_) &&
- (new_renderers_back_to_normal_ > new_renderers_until_warning_) &&
- (new_renderers_back_to_warning_ > new_renderers_until_critical_);
-}
} // namespace content
« no previous file with comments | « content/browser/memory/memory_condition_observer.h ('k') | content/browser/memory/memory_coordinator_default_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698