In an attempt to fill the shoes of Ehsan’s excellent Quantum Flow Newsletters1, I’ve started to keep track of interesting performance bugs that have been tackled over the past little while.
I don’t expect I’ll be able to put together such excellent essays on performance issues in Firefox, but I can certainly try to help to raise the profile of folks helping to make Firefox faster.
Expect these to come out pretty regularly, especially as we continue to press our performance advantage over the competition. Maybe I’ll come up with a catchy title, too!
Anyhow, here’s the stuff that’s gone by recently that I’m pretty stoked about, performance-wise! To everybody in this list – thanks for making Firefox faster!
- Hiroyuki Ikezoe made it so that we use less CPU when out-of-view elements and visibility:hidden elements are animating in certain cases
- Mike Conley moved FormHistory database initialization and migration off of the main thread
- Bas Schouten made it so that we can get more detailed tracing information from Gecko when profiling using VTune (example, RefreshDriver ticks). This should help us debug performance issues on Windows.
- Ryan Hunt enabled experimental parallel painting for macOS. This will hopefully allow us to perform painting more quickly in the future.
- Florian Quèze made it so that we lazily instantiate the Search Service until the first search is started instead of when the first search input is focused, which should help reduce the potential for jank when the user begins inputting a search
- Gijs Kruitbosch reduced the size of the blocklist by ~50% by removing the deprecated blocked certificates list. This means less work for Firefox to do in parsing that list soon after start-up. He also made it so that only the blocked items that are relevant to the client application and platform are returned, which means even fewer things to process. This should impact most Firefox users across the board, as the change occurred server-side where the blocklist is produced.
- Marco Bonardo refactored PlacesDBUtils to not do main-thread IO when Telemetry data is gathered.
Like this one! Check out Ehsan’s blog for the rest of the series. ↩