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

Reply via email to