My Startup Summary
July 14th, 2010 by tglek
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.
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