RESOLVED FIXED272572
Cache preferences updated while child process was suspended
https://bugs.webkit.org/show_bug.cgi?id=272572
Summary Cache preferences updated while child process was suspended
Chris Dumez
Reported 2024-04-11 21:36:28 PDT
Whenever system preferences change, the UIProcess detects this and broadcasts the changes to every child process via IPC. A lot of these processes are often suspended, which means that they're not processing incoming IPC and the IPC queue will grow, using more and more memory. To reduce memory usage in such cases, I am now caching preference updates happening during suspension in a HashMap. This saves memory because there is no IPC overhead. Also, when the same preferences changes several times, we just overwrite it in the map, instead of queuing a new IPC message. Once the process resumes, we send all updated preferences in a single IPC instead of one per preference change.
Attachments
Chris Dumez
Comment 1 2024-04-11 21:38:16 PDT
EWS
Comment 2 2024-04-12 08:08:06 PDT
Committed 277427@main (c626fbfed63e): <https://commits.webkit.org/277427@main> Reviewed commits have been landed. Closing PR #27182 and removing active labels.
Radar WebKit Bug Importer
Comment 3 2024-04-12 08:09:14 PDT
Note You need to log in before you can comment on or make changes to this bug.