Firefox Startup Performance Weekly Summary

Work on blockers for 3.6 stole some time last week, but some startup work advanced nonetheless, including a bunch of landings. I’ve posted the numbers from early last week below. The percentages are the difference from 3.5. Given the spate of landings later in the week after we measured,  I’ll have to update the numbers again to get the full effect of everything listed below. As usual, more details and links are available on the project wiki, and we’re available to answer questions in #startup on

Cold Startup (median results from Juan and myself)

Platform 3.5 3.6 Trunk
Mac Leopard (10/6) 12161 10440 (-14%) 10175 (-16%)
Win XP (10/4) 5610 5640 (0%) 4050 (-27.8%)

Warm Startup (median of results from Talos, updated 10/6)

Platform 3.5 3.6 Trunk
Mac Leopard 1500ms 1190ms (-20%) 1040ms (-30%)
Win XP 458ms 470ms (+2%) 468ms (+2%)
Win Vista 545ms 544ms (0%) 545ms (0%)
Linux 624ms 634ms (0%) 634ms (0%)

Recent landings:

Recent activity:

  • Ryan put up a patch for bug 520284, which utilizes an important change that happened recently in bug 471219 which allows components to register for periodic timer notifications *without* instantiating the service or component. An example is in Ryan’s patch, and the docs are in the source.
  • Bug 504858 pushes back the population of the bookmarks toolbar until after the browser window comes up. Dao put up a new patch. Measuring the wall-clock effect of this on startup, and determining what exactly is “gaming” the Ts test is part of the work here.
  • Ben Hsieh is in review cycles for bug 511761 which optimizes the fastload cache invalidation, and consolidates some of the invalidation triggers.
  • Service caching work in bug 516085, still made no progress. This week I’ll try pushing this to the Places branch.
  • No updates on Zack’s CSS parser changes in bug 513149.
  • Cold Startup Testing: Alice put more patches on bug 510587, getting us ever closer to automated testing of cold startup.

Projects in a holding pattern:

  • Moving font-loading out of the startup path on Mac: Jonathan Kew filed bug 519445 with a WIP patch for yet further reductions in Mac startup time spent in font system initialization.
  • 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.

3 Comments on “Firefox Startup Performance Weekly Summary”

  1. David Naylor says:

    Nice summary. I really like that you’ve managed to cut 28 percent off cold startups on winXP for trunk.

  2. Omega X says:

    What about Win7 results? Is it flat line like Vista?

  3. Bastiaan says:

    In warm startup, Linux has a 2% regression, unless there is a typo in the table.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s