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

Unified Diff: components/memory_pressure/direct_memory_pressure_calculator_win.cc

Issue 2874553004: Remove memory_pressure component. (Closed)
Patch Set: Created 3 years, 7 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: components/memory_pressure/direct_memory_pressure_calculator_win.cc
diff --git a/components/memory_pressure/direct_memory_pressure_calculator_win.cc b/components/memory_pressure/direct_memory_pressure_calculator_win.cc
deleted file mode 100644
index 48ae41e6477f4cf596c45bbab4eb1e6e91b3643c..0000000000000000000000000000000000000000
--- a/components/memory_pressure/direct_memory_pressure_calculator_win.cc
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/memory_pressure/direct_memory_pressure_calculator_win.h"
-
-#include "base/logging.h"
-#include "base/process/process_metrics.h"
-
-namespace memory_pressure {
-
-#if defined(MEMORY_PRESSURE_IS_POLLING)
-
-namespace {
-
-const int kKBperMB = 1024;
-
-} // namespace
-
-// A system is considered 'high memory' if it has more than 1.5GB of system
-// memory available for use by the memory manager (not reserved for hardware
-// and drivers). This is a fuzzy version of the ~2GB discussed below.
-const int DirectMemoryPressureCalculator::kLargeMemoryThresholdMb = 1536;
-
-// These are the default thresholds used for systems with < ~2GB of physical
-// memory. Such systems have been observed to always maintain ~100MB of
-// available memory, paging until that is the case. To try to avoid paging a
-// threshold slightly above this is chosen. The moderate threshold is slightly
-// less grounded in reality and chosen as 2.5x critical.
-const int
- DirectMemoryPressureCalculator::kSmallMemoryDefaultModerateThresholdMb =
- 500;
-const int
- DirectMemoryPressureCalculator::kSmallMemoryDefaultCriticalThresholdMb =
- 200;
-
-// These are the default thresholds used for systems with >= ~2GB of physical
-// memory. Such systems have been observed to always maintain ~300MB of
-// available memory, paging until that is the case.
-const int
- DirectMemoryPressureCalculator::kLargeMemoryDefaultModerateThresholdMb =
- 1000;
-const int
- DirectMemoryPressureCalculator::kLargeMemoryDefaultCriticalThresholdMb =
- 400;
-
-DirectMemoryPressureCalculator::DirectMemoryPressureCalculator()
- : moderate_threshold_mb_(0), critical_threshold_mb_(0) {
- InferThresholds();
-}
-
-DirectMemoryPressureCalculator::DirectMemoryPressureCalculator(
- int moderate_threshold_mb,
- int critical_threshold_mb)
- : moderate_threshold_mb_(moderate_threshold_mb),
- critical_threshold_mb_(critical_threshold_mb) {
- DCHECK_GE(moderate_threshold_mb_, critical_threshold_mb_);
- DCHECK_LE(0, critical_threshold_mb_);
-}
-
-DirectMemoryPressureCalculator::MemoryPressureLevel
-DirectMemoryPressureCalculator::CalculateCurrentPressureLevel() {
- base::SystemMemoryInfoKB mem_info = {};
- if (!GetSystemMemoryInfo(&mem_info))
- return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE;
-
- // How much system memory is actively available for use right now, in MBs.
- int phys_free = mem_info.avail_phys / kKBperMB;
-
- // TODO(chrisha): This should eventually care about address space pressure,
- // but the browser process (where this is running) effectively never runs out
- // of address space. Renderers occasionally do, but it does them no good to
- // have the browser process monitor address space pressure. Long term,
- // renderers should run their own address space pressure monitors and act
- // accordingly, with the browser making cross-process decisions based on
- // system memory pressure.
-
- // Determine if the physical memory is under critical memory pressure.
- if (phys_free <= critical_threshold_mb_)
- return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL;
-
- // Determine if the physical memory is under moderate memory pressure.
- if (phys_free <= moderate_threshold_mb_)
- return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE;
-
- // No memory pressure was detected.
- return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE;
-}
-
-bool DirectMemoryPressureCalculator::GetSystemMemoryInfo(
- base::SystemMemoryInfoKB* mem_info) const {
- return base::GetSystemMemoryInfo(mem_info);
-}
-
-void DirectMemoryPressureCalculator::InferThresholds() {
- // Determine if the memory installed is 'large' or 'small'. Default to 'large'
- // on failure, which uses more conservative thresholds.
- bool large_memory = true;
- base::SystemMemoryInfoKB mem_info = {};
- if (GetSystemMemoryInfo(&mem_info)) {
- large_memory = mem_info.total / kKBperMB >=
- DirectMemoryPressureCalculator::kLargeMemoryThresholdMb;
- }
-
- if (large_memory) {
- moderate_threshold_mb_ = kLargeMemoryDefaultModerateThresholdMb;
- critical_threshold_mb_ = kLargeMemoryDefaultCriticalThresholdMb;
- } else {
- moderate_threshold_mb_ = kSmallMemoryDefaultModerateThresholdMb;
- critical_threshold_mb_ = kSmallMemoryDefaultCriticalThresholdMb;
- }
-}
-
-#endif // defined(MEMORY_PRESSURE_IS_POLLING)
-
-} // namespace memory_pressure

Powered by Google App Engine
This is Rietveld 408576698