PSA: Fast Flat Tree Traversal enabled on trunk

59 views
Skip to first unread message

Hayato Ito

unread,
Mar 20, 2019, 1:01:10 AM3/20/19
to blink-dev
Hi folks,

The flag was flipped to stable. There should be no web-facing visible changes.

Summary: This is purely for the performance improvement; Achieving predictable O(1) fast flat tree traversal.


Since there can be a still tricky case in wild where our web tests couldn't catch, I would like to enable it on trunk now so that we can know how things are going well on Canary.

See the explainer for the actual performance improvements.

I'll update the explainer once YouTube finishes migration from Web Components v0
to Web Components v1. I expect YouTube is one of the customers who get performance improvements.


In terms of impacts on Blink developers:

Nothing. The usage of FlatTreeTraversal doesn't change.

Please file a bug if you see any bug which can be related to a flat tree structure.

Since a flat tree is now being used almost everywhere in Blink, this launch can have positive impacts on the performance of style calc, layout tree construction, event dispatching, hit tests, and almost everything in our rendering pipeline.

I hope there is no regression. If a regression happens and a fix is non-trivial, I'll disable the flag.

--
Hayato

Nico Weber

unread,
Mar 20, 2019, 7:45:01 AM3/20/19
to Hayato Ito, blink-dev
Hi,

it sounds like this shipped on stable before being enabled by default on trunk. Is that correct?

Nico

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFpjS_2iqVJrktGfyX-AEOXCHNNhXFi1qCxfrvCnKSL8qyojaw%40mail.gmail.com.

Hayato Ito

unread,
Mar 21, 2019, 10:51:59 PM3/21/19
to Nico Weber, blink-dev
On Wed, Mar 20, 2019 at 8:44 PM Nico Weber <tha...@chromium.org> wrote:
Hi,

it sounds like this shipped on stable before being enabled by default on trunk. Is that correct?

No. "The flag was flipped to stable" here means "it is enabled by default on trunk" (and it will be released on stable channel eventually).
That is what "stable" means in our RuntimeEnabledFeatures in Blink, I think.


--
Hayato
Reply all
Reply to author
Forward
0 new messages