Issue metadata
Sign in to add a comment
|
Use non-root node for style invalidation/recalc traversal starting point
Reported by
r...@opera.com,
Feb 13 2017
|
||||||||||||||||||||||||
Issue descriptionFor style invalidation and style recalc, we always start at the document node traversing the tree. For large, and particularly wide trees, this causes unnecessary traversal of a bunch of elements if we have style recalcs far down the tree only. That's the typical case for :hover, for instance. We mark the ancestor chain with child-needs-recalc/invalidation, but traversing down the tree, we don't know which child, so we end up traversing all siblings on every level. It's possible to improve on this by storing one or more common ancestors for elements which need an invalidation/recalc. Simple experimentation showed an improvement from 2ms to 0.1ms hovering the table of contents links in the single-page whatwg html spec. That did not set up the bloom filters and the style sharing depth properly, so numbers are not final. Another test that was done was the PerformanceTests/CSS/ClassInvalidation.html micro benchmark, which showed 5%-10% improvement (only using start node for recalc, not invalidation).
,
Feb 13 2017
Note about the html spec numbers: this is purely looking at style recalc, hit-testing is by far the slowest part here.
,
Feb 14 2017
,
Mar 27 2017
,
Sep 27 2017
rune - how did you set up your test? Is this something we can help with? This still sounds like something worth investigating or running an experiment for. Adding one label, but if there's no activity in another 6 months, we should archive this.
,
Sep 28 2017
It seems this was just a local branch which got deleted. I'll try to resurrect it.
,
Oct 30 2017
,
Nov 27 2017
Marking as HardBug as it's difficult to work on without a test case.
,
Dec 6 2017
,
Sep 14
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by eco...@igalia.com
, Feb 13 2017