Weekly Firefox Startup Performance Roundup
August 14, 2009
Here’s a summary of all the startup-related work going on. Other people on the team are also blogging updates on their individual projects:
- Ryan Flint: This Week in Perf – Aug. 14th Edition
- David Dahl: Looking for Dead Code
- Drew Willcoxon: Startup
As usual, for the details, check out the Startup Project wiki page.
Progress
- PGO for SQLite, MozStorage and Places: Landed on the Places branch. The test failures seen when PGO first landed are not there (yay), but the Talos boxes don’t show any clear wins (boo).
- Dead Code Hunting: Even though he’s supposed to be on vacation, David has got the full browser.xul environment pulled in for analysis. More info in his post (linked above). Still a lot of false-positives in the detection code.
- Startup timeline: Vlad’s been working with the NSPR owner, and the latest patch has review, so almost there.
- XPCOM component combining: No progress from me, but Florian Quèze attached a shell script to knit the components together!
- XPT Linking on Mac: Drew has confirmed big wins from this, split it off into it’s own bug. More detailed notes from him on his wiki page.
- JARification
- Taras’ core IO improvements to how JAR file contents are read have landed, as well as the combining of all chrome into browser and toolkit JARs (this morning!).
- Ryan is looking at putting the components directory into a JAR so that it reaps the same benefits as the chrome directories.
- Testing/Measurement
- Met with Alice to talk about various test scenarios, and the deployment process
- Started a guide for taking a Talos test from idea to production
- Initial steps on automatedly testing cold-startup, figuring out platform-specific calls, and what Talos changes are needed
- Discussing approaches to micro-benchmarking the browser UI
Next Steps
- Enable PGO on mozilla-central, get nightly tester feedback
- Once the startup timeline lands, get an actual timeline to analyze
- Reduce false-positives on the dead-code report, document installation and usage, develop plan for continuous integration
- Work with Ted to get a patch for JS component combining into the packaging process
- Figure out if there’s a win in jar’ing /components or if we just need to fix fastload to not touch the files as much
- Get XPT linking landed
- File bugs and get the Talos changes in Alice’s queue for cold-startup testing
- Finish the Talos test development guide
- Talk with Ryan Doherty about the reporting side of microbenchmarking
[UPDATE: added Drew's blog post]



August 14, 2009 at 9:25 pm
[...] packages. It should shave a couple hundred milliseconds off of OS X cold startup time spent in I/O. Dietrich, Alice, and I are setting up a Talos Ts to measure cold startup, and that will provide more [...]