Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ca15e3c5791874c4a2a289e2ab011a62a2dc91d2
https://github.com/WebKit/WebKit/commit/ca15e3c5791874c4a2a289e2ab011a62a2dc91d2
Author: Ben Nham <[email protected]>
Date: 2026-01-21 (Wed, 21 Jan 2026)
Changed paths:
M Source/WebCore/platform/SharedMemory.h
M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
M Source/WebKit/Platform/IPC/SharedBufferReference.cpp
M Source/WebKit/Platform/IPC/SharedBufferReference.h
M Source/WebKit/Platform/IPC/SharedBufferReference.serialization.in
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/WebProcess/Network/WebResourceLoader.cpp
Log Message:
-----------
Reduce fragmentation of small uncached network resources
https://bugs.webkit.org/show_bug.cgi?id=305574
rdar://168231289
Reviewed by Sihui Liu.
Small resources fetched over the network can end up on their own VM page,
leading to internal
fragmentation since the default page size on some devices is 16KB. Mitigate
this by copying small
resources to malloc'd memory. This is a ~0.3% win on Membuster5.
Also, transfer ownership of the network data from NetworkProcess to WebProcess
so that the footprint
is accounted to the web page that requested the data. This investigation
started because I was
trying to figure out why there was so much unmapped footprint in
NetworkProcess. Excess unmapped
footprint in NetworkProcess can cause it to jetsam, which is bad because it's a
process that's
shared by all WebProcesses.
* Source/WebCore/platform/SharedMemory.h:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::sendDidReceiveDataMessage):
* Source/WebKit/Platform/IPC/SharedBufferReference.cpp:
(IPC::SharedBufferReference::SharedBufferReference):
(IPC::SharedBufferReference::serializableBuffer const):
* Source/WebKit/Platform/IPC/SharedBufferReference.h:
(IPC::SharedBufferReference::transferOwnershipToReceiver):
* Source/WebKit/Platform/IPC/SharedBufferReference.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
Canonical link: https://commits.webkit.org/305957@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications