This Week in Perf


  • Landed bug 514407 – should help with startups where we rebuild the search plugin cache (first start, after updates) and with UI responsiveness after managing or installing new plugins.
  • Bug 475289 has been updated, hopefully getting review this week.
  • Wrote tests for bug 507073 – looking to get it up for review over the weekend.

In other news, I’ll be landing a patch soon that adds a new ioService property to NetUtil. Once in, it will no longer be necessary to create your own reference to nsIIOService if you’re already using NetUtil for asyncCopy or newURI.

I’ll be taking some time off starting Tuesday until the 22nd, so the next update won’t be until the 25th. See you then!

This Week in Perf

Picking up from the last post, here’s what I’ve been up to for my part of the startup improvement project:


  • Landed bug 499123 – the effects on Ts as seen by Talos were mostly inconclusive (though were trending in the right direction!) and didn’t match what I had seen while testing locally.
  • Did some profiling for bugs 441355 and 496217. I posted some findings for 441355 and filed bug 512837 for a potential improvement discovered in the process. I haven’t been able to reproduce 496217 before the end of DelayedStartup() yet, though I suspect the default start page and its text field is probably what’s causing this to show up at times.

Next Steps

  • Didn’t have much timeΒ  to finish up bug 507073 due to the Firefox work week, but hope to do so next week.

This Week in Perf – Aug. 14th Edition

The Firefox team has recently started using small, well-scoped projects as a way to speed development and to better split up and coordinate tasks among many developers.Β  Since these projects are typically small and have well defined goals, we’re also using them train ourselves to communicate more effectively and more often (has it really been three years since I last bloggedβ€½) about what our team is up to.

My project for the last couple weeks has been startup performance – mainly focusing on identifying and fixing areas where file IO is causing us pain.Β  Working with David, Dietrich, Drew, Vlad and Taras, we’ve found and have started working on some potential wins.

I didn’t have much time this week due to a cold and dealings with lawyers, but I started wrapping my head around the component loader in order to try having components packaged as a single JAR so that we can cut down on individual file reads during cold, non-fastload backed startups and stats in the warm case.

As far as what’s on tap for the next week I need to:

  • Write tests and finalize the patch for bug 507073.
  • Figure out the right direction for bug 507101.
  • Push to get outstanding reviews looked at. This has mostly been an issue of vacations and bandwidth and they’ll hopefully see some action within the next week.
  • File a bug with my findings for JAR’d components as I don’t really have the platform chops to properly tackle it πŸ˜‰


<gavin_> huh
<gavin_> mconnor: I don’t understand 347402 comment 29
<gavin_> the go button issue was my fault?
* rob_strong can’t imagine gavin ever doing that
<gavin_> hrm, actually, the problem is in but apparently not in any of the patches on the bug
* gavin_ blames Ryan πŸ˜‰
<Mossop> haha
<poningru> hehe
* poningru shakes fist at ryan
* rob_strong wants some of what ryan was smoking when he wrote that
<Mossop> As I recall there was an xul error in the original patch which is probably where the mistake crept in
<Ryan> Wait… what!? I’m to blame for the go button?
<Ryan> I did no such thing πŸ˜›
<Mossop> Ryan: Yeah its all your fault, we decided
<Ryan> πŸ™
<Mossop> Ryan: Feel free to try to prove your innocence πŸ˜‰
<Ryan> I didn’t even touch that part of the patch!
<Ryan> Though it’s worth noting that that patch was against the trunk πŸ™‚
<Lucy_> mconnor blames gavin πŸ˜‰
<Lucy_> but that might have changed since last night
<Ryan> Well gavin did check in my patch πŸ˜‰

<Ryan> Woo. It was totally my fault πŸ™
<Mossop> lol
<Ryan> I moved the wrong line in the original patch :/
<Ryan> But in my defense, it wouldn’t have happened if it was a unified diff with context!
<Mossop> Ah here come the excuses πŸ˜‰
<Ryan> Dude, have you seen the other patch? πŸ˜‰
<Mossop> Ok maybe I’ll let you off
<Ryan> Yay!
* Ryan hides from mconnor
<mconnor> Ryan: smooth ;P
<Ryan> eep
<mconnor> Ryan: typical sysadmin “looks right, must be right” πŸ˜‰
<Lucy_> lol
<Ryan> πŸ˜›
<Ryan> Hey, it worked okay too!
<mconnor> pfft

Oops πŸ™