Bug 300530
| Summary: | Align DOM timers to a nonzero alignment by default | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Ryan Reno <rreno> |
| Component: | DOM | Assignee: | Ryan Reno <rreno> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Ryan Reno
By default a not-maximally nested DOM timer is unaligned. This can cause serious thread scheduling issues in the presence of a "timer storm" where we build up pressure from a large amount of low but not zero timeout timers. In the worst cases we can end up scheduling a full 16ms of timers only to sleep the main thread for tens of microseconds before we go back to servicing more timers. This is clearly bad for power use. Experimenting with aligning DOM timers to a non-zero alignment allows for at least a single digit number of milliseconds where the main thread is sleeping which contributes greatly to reduced power use in the presence of abandoned timer handles piling up.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Ryan Reno
<rdar://problem/160531755>
Ryan Reno
Pull request: https://github.com/WebKit/WebKit/pull/52146
EWS
Committed 302278@main (c0b0499d32c9): <https://commits.webkit.org/302278@main>
Reviewed commits have been landed. Closing PR #52146 and removing active labels.