Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 321dfd04a9a7243777844e3946a07b759e411539 https://github.com/WebKit/WebKit/commit/321dfd04a9a7243777844e3946a07b759e411539 Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2025-03-03 (Mon, 03 Mar 2025)
Changed paths: M Source/JavaScriptCore/runtime/JSGlobalObject.cpp M Source/JavaScriptCore/runtime/JSGlobalObject.h M Source/JavaScriptCore/runtime/JSMicrotask.cpp M Source/JavaScriptCore/runtime/JSMicrotask.h M Source/JavaScriptCore/runtime/Microtask.h M Source/JavaScriptCore/runtime/VM.h M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/bindings/js/JSDOMMicrotask.cpp M Source/WebCore/bindings/js/JSDOMMicrotask.h M Source/WebCore/bindings/js/JSDOMWindowBase.cpp M Source/WebCore/bindings/js/JSDOMWindowCustom.cpp M Source/WebCore/bindings/js/JSExecState.h R Source/WebCore/bindings/js/JSMicrotaskCallback.h M Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp M Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp M Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp M Source/WebCore/dom/EventLoop.cpp M Source/WebCore/dom/EventLoop.h M Source/WebCore/dom/Microtasks.cpp M Source/WebCore/dom/Microtasks.h M Source/WebCore/workers/service/ExtendableEvent.cpp Log Message: ----------- Slightly optimize WebCore microtask execution https://bugs.webkit.org/show_bug.cgi?id=289030 rdar://146070011 Reviewed by Ryosuke Niwa. WebCore microtask execution is wrapping it with so many unnecessary abstractions. And it is causing massive slowdown compared to simple execution in JSC's default implementation. 1. We increase inline capacity of EventLoop Tasks to avoid repeated small allocations and deallocations. 2. We remove JSMicrotaskCallback and use JSC::Microtask directly. * Source/JavaScriptCore/runtime/JSGlobalObject.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): (JSC::JSGlobalObject::queueMicrotask): * Source/JavaScriptCore/runtime/JSGlobalObject.h: * Source/JavaScriptCore/runtime/JSMicrotask.cpp: (JSC::createJSMicrotask): (JSC::runJSMicrotask): (JSC::JSMicrotask::run): * Source/JavaScriptCore/runtime/JSMicrotask.h: * Source/JavaScriptCore/runtime/Microtask.h: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/bindings/js/JSDOMMicrotask.cpp: (WebCore::createJSDOMMicrotask): (WebCore::JSDOMMicrotask::run): * Source/WebCore/bindings/js/JSDOMMicrotask.h: * Source/WebCore/bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop): * Source/WebCore/bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::queueMicrotask): * Source/WebCore/bindings/js/JSExecState.h: (WebCore::JSExecState::runTask): * Source/WebCore/bindings/js/JSMicrotaskCallback.h: Removed. * Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp: * Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp: (WebCore::JSWorkerGlobalScopeBase::queueMicrotaskToEventLoop): * Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp: (WebCore::JSWorkerGlobalScope::queueMicrotask): * Source/WebCore/dom/EventLoop.cpp: (WebCore::EventLoop::run): * Source/WebCore/dom/EventLoop.h: * Source/WebCore/dom/Microtasks.cpp: (WebCore::MicrotaskQueue::performMicrotaskCheckpoint): * Source/WebCore/dom/Microtasks.h: Canonical link: https://commits.webkit.org/291550@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes