Firefox Startup Performance Weekly SummaryPosted: October 2, 2009
This week brought a big win on Mac, and a slew of changes that are about to land.
- Bug 517045 is fixed and brings another win on Mac. Found by Joel Reymont and fixed by John Daggett, it improves cold startup by ~20% and warm startup by ~4%. It gets better: Jonathan Kew filed bug 519445 with a WIP patch for yet further reductions in Mac startup time spent in font system initialization.
- Taras Glek’s work on combining the different preference files into a single one is ready to land.
- We now have unit-tested optimized builds, thanks to Release Engineering’s work on bug 486783. This means we can now turn on PGO for Places, mozStorage and SQLite, which I’ll land presently.
- Bug 504858 pushes back the population of the bookmarks toolbar until after the browser window comes up. The patch has review, is ready to land.
- Alfred Kayser’s patch on bug 510844 which should increase throughput of JAR file reading, is ready to land.
- Ben Hsieh got review on bug 510991, which removes some stats() from the startup path.
- I’m no longer able to reproduce the cold startup regression from 3.5 to 3.6. I turned of SuperFetch, which resulted in more stable numbers, but there was no visible regression, even in builds going back a couple of months. Juan is going to test on Windows XP.
- Ben Hsieh has a patch up for review on bug 511761, which removes needless stat()s of component files, and improves and clarifies current cache invalidation behavior.
- Service caching work in bug 516085, made no progress. Next week I’ll try pushing this to the Places branch to get a better idea of the total performance impact of the change.
- Zack is working on major CSS parser changes in bug 513149.
Projects in a holding pattern:
- Cold Startup Testing: Drew and Alice made a bunch of progress on bug 510587, to create a new Ts that measures cold startup. Alice is working on mobile Talos though, so this is sidelined for a bit. The only issue left is reliable Windows measurement, but we’re not going to block on it, can live with Mac and Linux to start off.
- JARification: David abandoned moving JS modules into a JAR file, since those files are fastloaded. However, since we want things like post-extension-install restarts to be fast, and those cause fastload cache invalidation, we might want to do things like this anyways. I filed a bug for the same treatment for components. These are lower priority, since they’re not the normal startup case. Follow along with all JAR-ification via the tracker bug.
- Startup Timeline: No updates, still not landed. Add [ft] in the whiteboard of your bug w/ the function names you want timed and David will generate it and update the bug.
- Static Analysis: No progress on bug 506128. David needs to file a bug with the final log of named-yet-uncalled functions.
- Dirty Profile Testing: No progress. Need to list scenarios, file bugs for each, generate Talos config patches and profile data, and then move it into Rel-Eng territory. Also, need to get a separate Tinderbox tree, since it’s going to cause a bazillion new columns.
- Joel Reymont noted in bug 513076 that there are serious drawbacks to getting our libraries in the dyld shared cache on Mac, so has deprioritized that work.