Index: third_party/WebKit/Source/platform/MemoryPurgeController.cpp |
diff --git a/third_party/WebKit/Source/platform/MemoryPurgeController.cpp b/third_party/WebKit/Source/platform/MemoryPurgeController.cpp |
index 2f70de222920b1ca732e20a405fa364554cb1e60..8a9f1f9e2321ab625bf93b3a304473daf2d0b1c3 100644 |
--- a/third_party/WebKit/Source/platform/MemoryPurgeController.cpp |
+++ b/third_party/WebKit/Source/platform/MemoryPurgeController.cpp |
@@ -45,7 +45,17 @@ void MemoryPurgeController::pageBecameInactive() |
void MemoryPurgeController::pageInactiveTask(Timer<MemoryPurgeController>*) |
{ |
+ static const size_t maxSizeInKB = 10 * 1024; |
+ |
+ size_t totalSizeBefore = WTF::Partitions::totalSizeOfCommittedPages(); |
purgeMemory(MemoryPurgeMode::InactiveTab); |
+ size_t totalSizeAfter = WTF::Partitions::totalSizeOfCommittedPages(); |
+ if (totalSizeAfter >= totalSizeBefore) |
+ return; |
+ size_t reclaimedInKB = (totalSizeBefore - totalSizeAfter) / 1024; |
+ if (reclaimedInKB >= maxSizeInKB) |
+ reclaimedInKB = maxSizeInKB - 1; |
+ Platform::current()->histogramEnumeration("Memory.RendererInactiveTabReclaimed", reclaimedInKB, maxSizeInKB); |
} |
void MemoryPurgeController::purgeMemory(MemoryPurgeMode purgeMode) |