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

Unified Diff: base/memory/discardable_memory_manager.cc

Issue 448173002: Re-land: base: Introduce an explicit call for reducing emulated discardable memory usage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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: base/memory/discardable_memory_manager.cc
diff --git a/base/memory/discardable_memory_manager.cc b/base/memory/discardable_memory_manager.cc
index d976da203c4a88494dfffa6e73dd167bee6c2c11..0ff47d9fca04b6f115b72b51d60bad783150f6ab 100644
--- a/base/memory/discardable_memory_manager.cc
+++ b/base/memory/discardable_memory_manager.cc
@@ -35,20 +35,6 @@ DiscardableMemoryManager::~DiscardableMemoryManager() {
DCHECK_EQ(0u, bytes_allocated_);
}
-void DiscardableMemoryManager::RegisterMemoryPressureListener() {
- AutoLock lock(lock_);
- DCHECK(base::MessageLoop::current());
- DCHECK(!memory_pressure_listener_);
- memory_pressure_listener_.reset(new MemoryPressureListener(base::Bind(
- &DiscardableMemoryManager::OnMemoryPressure, Unretained(this))));
-}
-
-void DiscardableMemoryManager::UnregisterMemoryPressureListener() {
- AutoLock lock(lock_);
- DCHECK(memory_pressure_listener_);
- memory_pressure_listener_.reset();
-}
-
void DiscardableMemoryManager::SetMemoryLimit(size_t bytes) {
AutoLock lock(lock_);
memory_limit_ = bytes;
@@ -77,13 +63,13 @@ bool DiscardableMemoryManager::ReduceMemoryUsage() {
return PurgeIfNotUsedSinceHardLimitCutoffUntilWithinSoftMemoryLimit();
}
+void
+DiscardableMemoryManager::ReduceMemoryUsageUntilWithinModeratePressureLimit() {
+ PurgeUntilWithinBytesToKeepUnderModeratePressure();
+}
+
void DiscardableMemoryManager::Register(Allocation* allocation, size_t bytes) {
AutoLock lock(lock_);
- // A registered memory listener is currently required. This DCHECK can be
- // moved or removed if we decide that it's useful to relax this condition.
- // TODO(reveman): Enable this DCHECK when skia and blink are able to
- // register memory pressure listeners. crbug.com/333907
- // DCHECK(memory_pressure_listener_);
DCHECK(allocations_.Peek(allocation) == allocations_.end());
allocations_.Put(allocation, AllocationInfo(bytes));
}
@@ -182,20 +168,6 @@ size_t DiscardableMemoryManager::GetBytesAllocatedForTest() const {
return bytes_allocated_;
}
-void DiscardableMemoryManager::OnMemoryPressure(
- MemoryPressureListener::MemoryPressureLevel pressure_level) {
- switch (pressure_level) {
- case MemoryPressureListener::MEMORY_PRESSURE_MODERATE:
- PurgeUntilWithinBytesToKeepUnderModeratePressure();
- return;
- case MemoryPressureListener::MEMORY_PRESSURE_CRITICAL:
- PurgeAll();
- return;
- }
-
- NOTREACHED();
-}
-
void
DiscardableMemoryManager::PurgeUntilWithinBytesToKeepUnderModeratePressure() {
AutoLock lock(lock_);

Powered by Google App Engine
This is Rietveld 408576698