Australis Performance Post-mortem Part 4: On Tab Animation
mikeconley.ca
mikeconley.ca
All this fancy animations they've added into Australis are non-essentials and impacting their already super busy single threaded model.
I wonder if removing all the user-initiated animation from the UI would improve perceived responsiveness dramatically, since my browser has no tab animation and a new tab appears instantaneously as far as I can tell.
That said, it's amazing in a somewhat shocking sort of way to see just how many layers of abstraction and lines of code are involved in doing something like a tab animation (I notice the article mentions CSS, Direct3D, Cairo, SVG, and OpenGL), and then realise that in terms of human timescale, it's still extremely fast.
I'm also curious to know how much of the problems still come from "not nativeness" of the UI (up to some point at least, Mozilla was proud to use some very complex architecture instead of the native controls, I don't know the current status, if I understood more OS-native always has benefits, except for not allowing easy "themes" development).
I would argue that they're not non-essentials. They may not be functional essentials, but they certainly add to the experience of running a polished, smooth browser.
You'll be happy to note that I've been loaned out to the Electrolysis team. We're making headway on that front for Desktop, and you can already test it on Nightly[1]. Open up a copy of Nightly, and go to File > Open new e10s window. A new window will open that has its tabs use child processes (you can tell when this is working because the tab's title will be underlined).
We hope to enable this by default on Nightly in the near future.
Reading the article (not carefully, I admit, and using google cache, I can't get the page otherwise), I haven't figured out what the TART stands for. But tl dr seems to be "we make this Australis UX revision, and then the tabs are slow, and we see it on the fastest machines, then we search for causes, then we fix them." Well yes, that's the right thing to do. Can somebody point to something interesting in the article that I missed to recognize?
[0] https://wiki.mozilla.org/Buildbot/Talos/Tests#TART.2FCART
Yeah, I know what it means, it felt a bit weird at first (I'd go for dissection to be honest). But languages don't change based on math principles. It's from context of game/software postmortems: http://www.gamasutra.com/features/postmortem/
Queer means strange, except it doesn't, gay means happy, except it doesn't.
Take the OS-titlebar-issue. I can really easily imagine how much time and nerves it took to find this one.
Apart from that, it is just a nice insight how they benchmarked and solved an issue. It is good to see that Mozilla is doing that properly, especially given how much Chrome kicked FFs ass in the early days.