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..d00d9ccca361e90abf18fd6027adeb56c89af1ef 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 + 1; |
+ if (reclaimedInKB >= maxSizeInKB) |
+ reclaimedInKB = maxSizeInKB - 1; |
+ Platform::current()->histogramCustomCounts("MemoryPurgeController.ReclaimedPartitionAllocInactiveTab", reclaimedInKB, 1, maxSizeInKB, 50); |
} |
void MemoryPurgeController::purgeMemory(MemoryPurgeMode purgeMode) |