Skip to main content
dietrich

Firefox Startup Performance Weekly Summary

Let's start with the numbers. Vlad spent some time measuring warm startup on the Mac, and it looks very nice: Firefox 3.6 starts up about 10% faster than 3.5, and 3.7 starts up about 20% faster than 3.5. I measured both cold and warm startup on Windows 7, and the picture is not so rosy there. Warm startup is basically flat across 3.5, 3.6 and 3.7, in my tests. Cold startup is... well, weird. Allow me to explain...

My cold startup methodology is simple: On a basically clean install of Windows 7, I'd create a new profile, start the browser up, close it and then reboot. Then I'd measure Firefox startup time after the OS settled. Then I'd do that reboot-and-measure step a bunch more times. Yes, so much fun. I measured Firefox startup time using the method Vlad posted to his blog. This doesn't do anything to avoid OS optimizations that might persist across reboots, which is a potential flaw, as you'll see below.

Firefox 3, 3.6 and 3.7 all had consistent numbers across their runs. However, Firefox 3.5 displayed a unique behavior: The first two cold starts were appropriately slow, similar to the cold startup times of the other versions. The subsequent runs were very fast for a cold start! I rebooted a few times, and started other versions a few times, then tried a series of 3.5 runs again... and saw the same thing: the first two runs were in the ballpark of other Firefox versions, but subsequent runs were crazy fast. Vlad was talking earlier in the week about a predictive optimization feature that Windows has, learning from an application's behavior to optimize it's performance. Possibly that feature works fantastically with Firefox 3.5, and for whatever reason does not work nearly as well with previous or subsequent versions of the app? I've clearly crossed into the realm of fantasy here, so alternate theories are welcome. Perhaps I should round-robin through all versions instead of doing serial runs of the same version.

Firefox 3.5 aside, when measuring cold startup I also see the regression that Drew blogged about. We'll get a bug filed and help from QA to get a regression range for this.

Status updates: