Closed
Bug 1421310
Opened 7 years ago
Closed 7 years ago
stylo: Investigate why Stylo fails to skip some restyle which Gecko is able to skip
Categories
(Core :: CSS Parsing and Computation, defect, P3)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
INVALID
Tracking | Status | |
---|---|---|
firefox59 | --- | affected |
People
(Reporter: xidorn, Unassigned)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
391.48 KB,
image/png
|
Details |
See the attached comparison on the profile https://perfht.ml/2BkLPgd (Gecko) and https://perfht.ml/2BkKtlD (Stylo).
Despite all the difference length of restyle showing in the chart, it can be seen that the third cyan bar in Stylo's profile doesn't have anything corresponding in Gecko's profile at all.
From the profile, the notification flush is triggered from Element::GetScrollFrame. It's probably worth knowing why Gecko can skip this restyle, and only do a short reflow.
Comment 1•7 years ago
|
||
This is probably related to bug 1417991.
I was waiting to https://github.com/devtools-html/perf.html/issues/352 to dig into it...
See Also: → 1417991
Updated•7 years ago
|
Priority: -- → P3
Reporter | ||
Comment 2•7 years ago
|
||
So, after some investigation, this seems to be invalid, because Gecko does do a style flush. It doesn't show up in the profile because it is a sync restyle via RebuildAllStyleData from nsPresContext::MediaFeatureValuesChanged, while Stylo simply post a restyle event.
Synchronous restyle doesn't show up on the timeline because the timeline marker only tracks ProcessPendingRestyles() directly called from PresShell::DoFlushPendingNotifications.
Regardless of this, we are still much slower than Gecko on the full document rebuild.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•