Let's start this week's updates with looking at the ongoing efforts to improve the usefulness of the background hang reports data. With Ben Miroglio's help, we confirmed that we aren't blowing up telemetry ping sizes yet by sending native stack traces for BHR hangs, and as a result we can now capture a deeper call stack depth, which means the resulting data will be easier to analyze. Doug Thayer has also been hard at work at creating a new BHR dashboard based on the perf-html UI. You can see a sneak peak here, but do note that this is work in progress! The raw BHR data is still available for your inspection.

Kannan Vijayan has been working on adding some low level instrumentation to SpiderMonkey in order to get some detailed information on the relative runtime costs of various builtin intrinsic operations inside the JS engine in various workloads using the rdtsc instruction on Windows. He now has a working setup that allows him to take a real world JS workload and get some detailed data on what builtin intrinsics were the most costly in that workload. This is extremely valuable because it allows us to focus our optimization efforts on these builtins where the most gains are to be achieved first. He already has some initial results of running this tool on the Speedometer benchmark and on a general browsing workload and some optimization work has already started to happen.

Dominik Strohmeier has been helping with running startup measurements on the reference Acer machine to track the progress of the ongoing startup improvements using an HDMI video capture card. For these measurements, we are tracking two numbers, one is the first paint times (the time at which we paint the first frame from the browser window) and the other is the hero element time (the time at which we paint the “hero element” which is the search box in about:home in this case.) The baseline build here is the Nightly of Apr 1st as a date before active work on startup optimizations started. At that time, our median first paint time was 1232.84ms (with a standard deviation of 16.58ms) and our hero element time was

1849.26ms (with a standard deviation of 28.58ms). On the Nightly of May 18, our first paint time is 849.66ms (with a standard deviation of 11.78ms) and our hero element time is 1616.02ms (with a standard deviation of 24.59ms).

Next week we're going to have a small work week with some people from the DOM, JS, Layout, Graphics and Perf teams here in Toronto. I expect to be fully busy at the work week, so you should expect the next issue of this newsletter in two weeks! With that, it is time to acknowledge the hard work of those who helped make Firefox faster this past week. I hope I'm not dropping any names by accident!