When simulating memory pressure, GC *after* releasing WebCore resources.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Jun 2014 01:31:25 +0000 (01:31 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Jun 2014 01:31:25 +0000 (01:31 +0000)
Since clearing the page cache is likely to create lots of garbage, defer the
synchronous GC until after the WebCore pressure relief, so we can see the
effect of clearing out all those pages.

Rubber-stamped by Gavin Barraclough.

* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::install):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170169 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/cocoa/MemoryPressureHandlerCocoa.mm

index 03381ac..4250dc7 100644 (file)
@@ -1,3 +1,16 @@
+2014-06-19  Andreas Kling  <akling@apple.com>
+
+        When simulating memory pressure, GC *after* releasing WebCore resources.
+
+        Since clearing the page cache is likely to create lots of garbage, defer the
+        synchronous GC until after the WebCore pressure relief, so we can see the
+        effect of clearing out all those pages.
+
+        Rubber-stamped by Gavin Barraclough.
+
+        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
+        (WebCore::MemoryPressureHandler::install):
+
 2014-06-18  Sam Weinig  <sam@webkit.org>
 
         Move generate prototype and constructor classes into the generated implementation files
index 5b1a94b..7150aaf 100644 (file)
@@ -108,12 +108,12 @@ void MemoryPressureHandler::install()
 
     // Allow simulation of memory pressure with "notifyutil -p org.WebKit.lowMemory"
     notify_register_dispatch("org.WebKit.lowMemory", &_notifyToken, dispatch_get_main_queue(), ^(int) {
+        memoryPressureHandler().respondToMemoryPressure(true);
 
         // We only do a synchronous GC when *simulating* memory pressure.
         // This gives us a more consistent picture of live objects at the end of testing.
         gcController().garbageCollectNow();
 
-        memoryPressureHandler().respondToMemoryPressure(true);
         malloc_zone_pressure_relief(nullptr, 0);
     });