Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e0c479c2e8bdc4473d872db99d4c3dcefa81e87d
https://github.com/WebKit/WebKit/commit/e0c479c2e8bdc4473d872db99d4c3dcefa81e87d
Author: Yusuke Suzuki <[email protected]>
Date: 2023-11-29 (Wed, 29 Nov 2023)
Changed paths:
M Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp
M Source/JavaScriptCore/heap/EdenGCActivityCallback.h
M Source/JavaScriptCore/heap/FullGCActivityCallback.cpp
M Source/JavaScriptCore/heap/FullGCActivityCallback.h
M Source/JavaScriptCore/heap/GCActivityCallback.cpp
M Source/JavaScriptCore/heap/GCActivityCallback.h
M Source/JavaScriptCore/heap/Synchronousness.h
M Source/WebCore/page/OpportunisticTaskScheduler.cpp
M Source/WebCore/page/OpportunisticTaskScheduler.h
Log Message:
-----------
[JSC] Use synchronous GCActivityCallback GC with RunLoopObserver
https://bugs.webkit.org/show_bug.cgi?id=265515
rdar://118930139
Reviewed by Wenson Hsieh.
Now we can schedule GC only when we are idle from GCActivityCallback. So we do
not need to run async version.
This patch changes two things.
1. We set up RunLoopObserver and run GC when RunLoop gets idle state after
GCActivityCallback detects GC opportunities.
2. We use sync GC instead of async GC since we now run this only when we are
idle. We do not need to run async version.
* Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp:
(JSC::EdenGCActivityCallback::EdenGCActivityCallback):
(JSC::EdenGCActivityCallback::doCollection):
* Source/JavaScriptCore/heap/EdenGCActivityCallback.h:
(JSC::EdenGCActivityCallback::tryCreate):
* Source/JavaScriptCore/heap/FullGCActivityCallback.cpp:
(JSC::FullGCActivityCallback::FullGCActivityCallback):
(JSC::FullGCActivityCallback::doCollection):
* Source/JavaScriptCore/heap/FullGCActivityCallback.h:
(JSC::FullGCActivityCallback::tryCreate):
* Source/JavaScriptCore/heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::GCActivityCallback):
* Source/JavaScriptCore/heap/GCActivityCallback.h:
* Source/JavaScriptCore/heap/Synchronousness.h:
* Source/WebCore/page/OpportunisticTaskScheduler.cpp:
(WebCore::OpportunisticTaskScheduler::FullGCActivityCallback::FullGCActivityCallback):
(WebCore::OpportunisticTaskScheduler::FullGCActivityCallback::doCollection):
(WebCore::OpportunisticTaskScheduler::EdenGCActivityCallback::EdenGCActivityCallback):
(WebCore::OpportunisticTaskScheduler::EdenGCActivityCallback::doCollection):
* Source/WebCore/page/OpportunisticTaskScheduler.h:
Canonical link: https://commits.webkit.org/271324@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes