Bug 272572
| Summary: | Cache preferences updated while child process was suspended | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Chris Dumez <cdumez> |
| Component: | WebKit2 | Assignee: | Chris Dumez <cdumez> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | kkinnunen, pvollan, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Chris Dumez
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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Chris Dumez
Pull request: https://github.com/WebKit/WebKit/pull/27182
EWS
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
<rdar://problem/126350340>