[webkit-changes] [WebKit/WebKit] 80bf5c: Reduce memory usage when sending SharedBuffer acro...
Jean-Yves Avenard
noreply at github.com
Thu Nov 24 15:15:40 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 80bf5c2acfbc545488d962f3f4a316b0a5c73119
https://github.com/WebKit/WebKit/commit/80bf5c2acfbc545488d962f3f4a316b0a5c73119
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2022-11-24 (Thu, 24 Nov 2022)
Changed paths:
M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
M Source/WebKit/UIProcess/WebURLSchemeTask.cpp
M Source/WebKit/UIProcess/WebURLSchemeTask.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp
M Source/WebKit/WebProcess/WebPage/WebURLSchemeHandlerProxy.h
Log Message:
-----------
Reduce memory usage when sending SharedBuffer across IPC
https://bugs.webkit.org/show_bug.cgi?id=248301
rdar://102201837
Pack small SharedBuffers across a single allocated SharedMemory.
A threshold of 4kB has been chosen through educated guesses.
Have URLSchemeTaskDidReceiveData use SharedBuffer when sending data to the content
process rather than a SharedBufferReference. The primary use of a SharedBufferReference
is to keep ownership of the allocated memory to the sending process. There's no
such requirement here.
Fly-by improvement, only perform a single memory allocation when passing a FragmentedShared made of multiple segments
on GTK and WPE platfom.
Reviewed by Kimmo Kinnunen.
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::useUnixDomainSockets):
(IPC::ArgumentCoder<WebCore::FragmentedSharedBuffer>::encode):
(IPC::ArgumentCoder<WebCore::FragmentedSharedBuffer>::decode):
* Source/WebKit/UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::didReceiveData):
* Source/WebKit/UIProcess/WebURLSchemeTask.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
(WebKit::WebURLSchemeHandlerProxy::taskDidReceiveData):
* Source/WebKit/WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
Canonical link: https://commits.webkit.org/256999@main
More information about the webkit-changes
mailing list