USER_INACTIVE GCs can run while animating
Categories
(Core :: JavaScript: GC, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox94 | --- | fixed |
People
(Reporter: pbone, Assigned: pbone)
References
Details
(Keywords: perf-alert)
Attachments
(2 files)
These GCs are scheduled only on user activity. However if the user sits back and watches some benchmark like motionmark or other thing where responsiveness is still important, it can jank during compacting. I propose to use both user activity and something like nsRefreshDriver
to decide if it's a good idea to do these GCs.
Comment 1•3 years ago
|
||
That sounds bad. We should probably suppress these during animation if we have good heuristics to know when that's happening.
Updated•3 years ago
|
Assignee | ||
Comment 2•3 years ago
|
||
I spoke with hiro who suggested some CSS animation heuristics. but it's not picking up drawing on a canvas element so I'm looking for that now. I'll also try to get in touch with someone who knows about media, I think media isn't an issue because it's handled on a different process, but I'd like to be sure.
Assignee | ||
Comment 3•3 years ago
|
||
Using nsRefreshDriver
works for CSS animations, canvas drawing and WebGL (I think this also uses canvas).
Assignee | ||
Comment 4•3 years ago
|
||
Depends on D124010
Assignee | ||
Comment 5•3 years ago
|
||
Depends on Bug 1727960 for detecting if the refresh driver is ticking.
Pushed by pbone@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/12768301ed56 Only do a shrinking GC if we're not animating r=smaug
Comment 7•3 years ago
|
||
bugherder |
Comment 8•3 years ago
|
||
== Change summary for alert #31176 (as of Mon, 06 Sep 2021 15:26:49 GMT) ==
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|
38% | facebook fnbpaint | linux1804-64-shippable-qr | warm webrender | 319.54 -> 197.12 |
37% | google-docs-canvas LastVisualChange | linux1804-64-shippable-qr | warm webrender | 1,540.00 -> 976.67 |
14% | google-docs-canvas fnbpaint | linux1804-64-shippable-qr | warm webrender | 237.25 -> 203.88 |
14% | google-docs-canvas PerceptualSpeedIndex | linux1804-64-shippable-qr | warm webrender | 785.21 -> 677.83 |
3% | amazon-sec fcp | windows10-64-shippable-qr | warm webrender | 325.63 -> 316.29 |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=31176
Backout by ccozmuta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0bc9f1cd97de Backed out changeset 12768301ed56 for depending on bug 1727960. CLOSED TREE
Comment 10•3 years ago
|
||
Backed out at dev request for depending on Bug 1727960. CLOSED TREE
Backout link : https://hg.mozilla.org/integration/autoland/rev/0bc9f1cd97de1a383880deb343856cc96c1488d6
Assignee | ||
Comment 11•3 years ago
|
||
Comment 12•3 years ago
|
||
Backout merged to central: https://hg.mozilla.org/mozilla-central/rev/0bc9f1cd97de
Comment 13•3 years ago
|
||
Pushed by pbone@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ac5731eb3f38 Provide nsRefreshDriver::IsRegularRateTimerTicking() r=smaug https://hg.mozilla.org/integration/autoland/rev/34a06e03dd6e Only do a shrinking GC if we're not animating r=smaug
Comment 14•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ac5731eb3f38
https://hg.mozilla.org/mozilla-central/rev/34a06e03dd6e
Comment 15•3 years ago
|
||
(In reply to Cristian Tuns from comment #12)
Backout merged to central: https://hg.mozilla.org/mozilla-central/rev/0bc9f1cd97de
== Change summary for alert #31546 (as of Wed, 29 Sep 2021 11:44:23 GMT) ==
Regressions:
Ratio | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|
5% | buzzfeed dcf | macosx1015-64-shippable-qr | warm webrender | 310.25 -> 324.92 |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=31546
Updated•3 years ago
|
Description
•