Add-ons, Measuring Performance

After our recent posts on add-ons performance and installation experiences, we’ve seen some questions from developers. This post answers a few of the more common questions, and offers suggestions about what developers can do to improve the add-on experience.

In this post, we described what IE measures (e.g. the impact of each add-on on page navigation) and when IE measures it. One question is how frequently does IE measure, and how does IE calculate the average. There are many alternatives to choose from in calculating an average time, like a weighted average, or geometric average. IE calculates the arithmetic mean of the last 10 recorded data points. (Load and navigate times are stored and averaged separately from each other, and for each add-on.) This process begins with the first time IE runs any add-on. Each time the add-on runs within IE, IE updates the data and recalculates the average. In IE8, this average is the load time number you see in the Manage Add-ons dialog.

Another common question is how the CPU speed of an individual’s PC impacts the load times of add-ons, and the relationship to the threshold used to inform the consumer about the performance impact of their add-ons. On a slower CPU, add-ons that perform more calculations take more time to load. While the overall speed of a PC may impact performance, consumer tolerance and the thresholds of human perception are constant (Einstein not withstanding). The thresholds IE uses are the same regardless of CPU speed.

Directly related to these questions is “what can an add-on do to reduce the amount of time it takes to load the first time it runs?” Developers have many options here. Some add-ons choose to perform one-time calculations, data caching, and other operations the first time they run. One alternative is to do these operations as part of add-on installation. In earlier blog posts we suggested ways developers can make their add-ons run fast, and tools to use to understand browser performance.

We value the feedback and conversations with developers who want to make their add-ons work well so our mutual customers have a great browsing experience.