One of the focuses of the performance team this year is to improve start-up time for the browser. We’ve identified that the Add-on Manager has several issues that can delay start up, and can also cause brief user interface hangs (“jank”) during normal operation. This Bugzilla search shows what we’re tracking right now.
After investigating bug 729330, we decided that the best approach to removing the database I/O bottlenecks in the code was to remove the database. The amount of information we store about addons is relatively small (typically tens of kilobytes, a few hundred KB in the worst case). It is not modified very often, and doesn’t really require the sort of random search and update provided by the SQLITE database we’re currently using. We hope that switching the data storage to JSON, with asynchronous I/O to update the persistent copy in the user’s profile, will improve both overall performance and responsiveness.
We hashed out the approach on an Etherpad document at https://etherpad.mozilla.org/snappy-addon-manager, and now Felipe and I are digging in and starting to change code. The work is being done under BugÂ 853388 and BugÂ 853389.
I’ll post progress reports here every week or two, or when anything particularly interesting comes up.