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