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)

defect

Tracking

()

RESOLVED INVALID
Tracking Status
firefox59 --- affected

People

(Reporter: xidorn, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Attached image comparison
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.
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
Priority: -- → P3
Depends on: 1417991
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.

Attachment

General

Created:
Updated:
Size: