Title: [163384] trunk/Source/_javascript_Core
Revision
163384
Author
[email protected]
Date
2014-02-04 09:56:11 -0800 (Tue, 04 Feb 2014)

Log Message

GC timer should always do a FullCollection
https://bugs.webkit.org/show_bug.cgi?id=128186

Reviewed by Michael Saboff.

Right now the GC timer does whatever type of collection the next collection 
would have been, which is almost always an EdenCollection. It then thinks 
that it has done all of the work it was supposed to do and never schedules 
another GC. Ideally we'd like to have some heuristics for the timer that 
would schedule both EdenCollections and FullCollections, but the easiest 
fix for now is to always do FullCollections since that will at least be 
a non-regression.

* heap/Heap.h:
(JSC::Heap::gcTimerDidFire):
* runtime/GCActivityCallback.cpp:
(JSC::DefaultGCActivityCallback::doWork):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (163383 => 163384)


--- trunk/Source/_javascript_Core/ChangeLog	2014-02-04 17:50:10 UTC (rev 163383)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-02-04 17:56:11 UTC (rev 163384)
@@ -1,3 +1,23 @@
+2014-02-04  Mark Hahnenberg  <[email protected]>
+
+        GC timer should always do a FullCollection
+        https://bugs.webkit.org/show_bug.cgi?id=128186
+
+        Reviewed by Michael Saboff.
+
+        Right now the GC timer does whatever type of collection the next collection 
+        would have been, which is almost always an EdenCollection. It then thinks 
+        that it has done all of the work it was supposed to do and never schedules 
+        another GC. Ideally we'd like to have some heuristics for the timer that 
+        would schedule both EdenCollections and FullCollections, but the easiest 
+        fix for now is to always do FullCollections since that will at least be 
+        a non-regression.
+
+        * heap/Heap.h:
+        (JSC::Heap::gcTimerDidFire):
+        * runtime/GCActivityCallback.cpp:
+        (JSC::DefaultGCActivityCallback::doWork):
+
 2014-02-03  Filip Pizlo  <[email protected]>
 
         Lift the FTL tier-up threshold from 25000 to 100000

Modified: trunk/Source/_javascript_Core/heap/Heap.h (163383 => 163384)


--- trunk/Source/_javascript_Core/heap/Heap.h	2014-02-04 17:50:10 UTC (rev 163383)
+++ trunk/Source/_javascript_Core/heap/Heap.h	2014-02-04 17:56:11 UTC (rev 163384)
@@ -147,6 +147,7 @@
 
         JS_EXPORT_PRIVATE void collectAllGarbage();
         bool shouldCollect();
+        void gcTimerDidFire() { m_shouldDoFullCollection = true; }
         void collect();
         bool collectIfNecessaryOrDefer(); // Returns true if it did collect.
 

Modified: trunk/Source/_javascript_Core/runtime/GCActivityCallback.cpp (163383 => 163384)


--- trunk/Source/_javascript_Core/runtime/GCActivityCallback.cpp	2014-02-04 17:50:10 UTC (rev 163383)
+++ trunk/Source/_javascript_Core/runtime/GCActivityCallback.cpp	2014-02-04 17:56:11 UTC (rev 163384)
@@ -95,6 +95,7 @@
         return;
     }
 #endif
+    heap->gcTimerDidFire();
     heap->collect();
 }
     
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to