My Startup Summary

I try to blog about interesting things I encounter while solving various issues in Mozilla. Some things are less bloggable than others. If this blog don’t fulfill your startup + static analysis needs you can follow my status updates and twitter. For now here is a summary of various half-baked/inprogress work:

  • I worked on upgrading to GCC 4.5 which turned out to be a performance regression. While tracking down a workaround, I got into helping GCC guys help us by fixing gcc trunk’s LTO to work on Mozilla.
  • I am also determined to see Firefox come out with a fat libxul and not link to useless to us libraries by default.
  • I spent a lot of time figuring out why our sqlite io hurting, ended up bumping block size to 32K. I am really hoping that Marco can deliver VACUUM for all of the Firefox databases in time for Firefox 4.
  • I refactored most of icegrind so in addition optimizing startup, it can also facilitate investigative work like Mike Hommey is doing.
  • Posted a summary on the evils of static initializers. Came across a Chrome equivalent today.

I plan to blog more on each of these subjects as they get closer to realization.

1 comment

  1. For constructors we still might try to teach GCC to put startup code into .text section subsection (like we do for hot/cold partitioning). It should help quite a lot.

    The observation of chrome folks about iostream making static initializer in every file it is included into is valid?

    Honza