Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7417bace367861c80a07197c1a7535c1620e3b51
https://github.com/WebKit/WebKit/commit/7417bace367861c80a07197c1a7535c1620e3b51
Author: Andrew Fryer <[email protected]>
Date: 2025-07-18 (Fri, 18 Jul 2025)
Changed paths:
M JSTests/stress/many-substrings-of-rope-shouldnt-use-excessive-memory-2.js
M Source/JavaScriptCore/heap/Heap.cpp
M Source/JavaScriptCore/heap/Heap.h
M Source/JavaScriptCore/runtime/OptionsList.h
M Tools/Scripts/run-jsc-stress-tests
Log Message:
-----------
Rate limit GC
https://bugs.webkit.org/show_bug.cgi?id=295839
rdar://155699898
Reviewed by Yusuke Suzuki.
For machines with >= 16 GB RAM, accumulate the number of GCs we've done
with a given half-life to determine if the heap has been GCing a lot.
If so, don't trigger GC in slow allocation until we've reached another
threshold after m_maxHeapSize, allowing eden to grow to a constant
multiple of the minimum heap size.
This won't increase memory usage too much or unecessarily because:
The threshold prevents eden from increasing memory usage too much.
Exponential decay means we only do this if we've been GCing more than
once a half-life recently.
Also adjust js stress tests so that this doesn't break them.
(Increase js stress test memory limit and add explicit gc calls to a
test that ensures substrings of rope don't use too much memory.)
* JSTests/stress/many-substrings-of-rope-shouldnt-use-excessive-memory-2.js:
(test):
* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::runEndPhase):
(JSC::Heap::projectedGCRateLimitingValue):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::collectIfNecessaryOrDefer):
* Source/JavaScriptCore/heap/Heap.h:
* Source/JavaScriptCore/runtime/OptionsList.h:
* Tools/Scripts/run-jsc-stress-tests:
Canonical link: https://commits.webkit.org/297631@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes