Australis performance report #3
mconley at mozilla.com
Thu Oct 24 23:34:59 UTC 2013
Wow, it's been far too long since I sent one of these things out. The rapid combination of Summit, Canadian Thanksgiving, and a pretty brutal cold kinda put this update habit on the backburner.
But I'm back now, and I've got stories to tell.
Here's where we are:
The majority of the ts_paint regression we're seeing on the UX branch for Windows XP is accounted for by the tabs being put into the titlebar and the new customization code that runs on start-up. Cool things are often not free, and this is just one of those cases where it's looking like we're going to eat this cost in order to purchase beautiful tabs and better customization. The remaining ts_paint regression that's not accounted for by the tabs or customization code (approximately 5ms) is not large enough for us to block on. I'll be working with Vladan from the perf team on some cold-startup performance work (orthogonal to Australis) to counterbalance this.
So, to sum up: ts_paint regression accounted for, and no longer a blocker. \o/
# TART (tab animation regression test)
The TART regression is what we've been spending most of our time figuring out, and there are two parts to this - the XP regression, and the OS X regression.
I'll start with XP. Here's the current graph showing our TART performance on XP: http://mzl.la/1eOhyFU (again, the green nodes are mozilla-central, the purple nodes are the UX branch, and each graph represents a sub-test measurement for TART. Lower is on the graph is better.)
As you may recall from my last update, we had narrowed the regression down to the technique we were using to draw the curves of the selected tab. We started investigating a plan to use SVG to draw the curves, and make use of SVG caching that some fine folks from the Layout team were working on.
Well, the SVG caching stuff landed a few days ago, and we've got an SVG curve patch in the works. I'm happy to report that the SVG curve patch appears to neutralize the regression on XP! We're still iterating on the SVG curve patch to make sure we don't regress on tab behaviour / appearance, but so far it's looking good. I'm cautiously optimistic. Follow our progress in bug 921038.
Next is OS X. We've got a pretty hefty regression on OS X - 10.6 in particular. It gets better on 10.7, and is best on 10.8.
Here's OS X 10.6, for example: http://mzl.la/1cguiaA. This regression is a little harder to get a sense of because of how noisy the graph is - those error bars are huge. But compare-talos tells us that there's a serious regression there.
We've been able to isolate that regression down to an attribute ("chromemargin") that we set on the main-window element that allows us to draw the tabs in the titlebar. For some reason, this causes an increase in the amount of time we want for the GPU to composite. It's really quite mysterious - see bug 924415 for further details. I sum up our findings in comment 15.
We're going to try to get some (already swamped) Graphics folks to take a look at it to see if they can help us figure out what's going on.
And that's pretty much where we stand!
TL;DR: ts_paint isn't a blocker. We think we've got a solution for the XP regression. We're stumped by cause of OS X regression, but hopefully Graphics team will be able to help us figure it out.
More information about the firefox-dev