List of objectives and key results for the first quarter of 2015.
Have telemetry benchmark suite running key_silk_cases monitoring layout times with less than 1% variation between runsOwner(s):benjhayden
The variation between runs is about 3% overall for tests running with the new layout_avg telemetry metric. Down from about 10% for existing webkit performance tests.
The variation between runs is about 3% overall, though avg and variation vary widely between pages.
It looks like there's a couple hundred ms variation in the average of all pages' layout_avg, though I'm not sure what the take-home number should be. The average over all the pages' layout_avg is about 5.4ms after I added Masonry, and the stddev in that line looks to be about 200ms, which is about 3-4% variation. Masonry's layout_avg is usually around 70ms, and the stddev in its layout_avg between runs is about 1-2ms, which is about 3% variation. Several pages have a layout_avg that is consistently below 1ms, so normal variation can be 100% or more.
One way to reduce variation would be to rewrite the pages to perform significantly more layout, i.e. boost the signal above the noise.
Perhaps this OKR should have been about making sure that there aren't any easily-fixable sources of noise in any page's layout_avg, e.g. non-deterministic load order. I fixed one issue of that nature. The noise in most of the rest of the pages looks like expected white noise, with a few pages exhibiting rare spikes that may warrant further investigation, though nothing as troublesome as that non-deterministic load order.
I'm rewriting the LayoutMetric, so these numbers will change and expose more detailed information.
Add 3 real-world pages with lots of layout to key_silk_cases. At least two of which are mobile orientedOwner(s):benjhayden
Added two new tests, Polymer Topeka and Masonry.Owner(s):everyone
We've speed up quite a few of the blink layout perf tests but seemingly none of the silk cases.
It turns out that all the key_silk_cases tests were already pretty fast when it comes to layout.
Split Measure into Element, Text and Custom Layout measure.
No real progress, was deprioritized in favor of performance and code health work. Questionable whether it makes sense without some sort of layout/style containment as we cannot give any performance guarantees without it.Owner(s):skobes
Main-thread, impl-thread, and script-driven frame-level scrolls now work through LayerScrollableArea codepath with --root-layer-scrolls. Iframes, position: fixed, and scroll animations work. Need to expand test coverage and look at potential interactions with other features (pinch viewport, fractional scroll offsets, top controls, overhang, slimming paint, scroll customization etc).Owner(s):hartmanng, szager
Great progress but not quite there yet. Need to solve the performance issue. Still need to go through all tests on Windows to determine if any of the changes are due to regressions or if we just need to rebaseline the tests. Mac and Linux both close.Owner(s):cbiesinger
Clusterfuzz now does produce assertion errors. [restricted link] If that link does not show results, click "Toggle experimental testcases".
Triaged most asserts, but so far only on paper. Not fixed because focused more on Flexbox. Need to continue in Q2 with bug filing and fixing.Owner(s):cbiesinger
Not done because not done triaging. However, when it's time to do this it's just a matter of asking the clusterfuzz team to do it. All code and logic is already in place.Owner(s):dsinclair
Landed first-letter but the list markers change is stuck on finishing the patch, especially editing. Dan is pulled in other directions (LayoutObject renaming, unflaking win bot etc)Owner(s):kojii, eae
Speed up by over 2x at a minimum and up to 40x in some cases.