Focusing on Real World Web Performance with Internet Explorer 9

February 8th, 2011

One engineering objective of Internet Explorer 9 is to build the world’s fastest browser. Browser performance matters to everyone. Consumers, enterprises, developers, and the technology industry share a desire for a faster and more capable Web platform.

To build the world’s fastest browser we focused on the real world Web performance metrics that matter to customers. Web performance is a complex and nuanced problem and while some in the industry have become distracted with artificial performance benchmarks, which only measure one aspect of the browser, we have remained focused on the real world scenarios that matter to customers.

As we near the close of the Internet Explorer 9 development cycle, now is a good time to look at the five performance objectives we focused on this release. These performance objectives formed the core of our work including architectural changes to support hardware accelerated graphics, compiled JavaScript, and native JavaScript integration, along with over 2,000 targeted performance optimizations like our caching improvements.

Five Internet Explorer 9 Performance Objectives:

  1. Display Time: Perform user actions faster than any modern browser
  2. Elapsed Time: Execute Web site code faster than any modern browser
  3. CPU Time: Effectively scale computation better than any modern browser
  4. Resource Utilization: Require less overall system resources than any modern browser
  5. Power Consumption: Require less power than any modern browser

We believe being the world’s fastest browser means being best in breed at all five of these objectives across the real world scenarios that matter to customers.

Let’s take a closer look at what each of these five objectives means through the scenario of loading a large sports site over a DSL connection for the first time. The above diagram shows what happens on the CPU while the sports site is loading, important points along the way, and how these map to our objectives. We use these same metrics for complex AJAX/Web2.0 JavaScript applications as well.

  1. Display Time
    The most important objective is what we refer to as “Display Time.” This has many names across the industry including “time to glass” and “primary paint.” Display Time measures the time from when the user performs an action until the user sees the result of that action on the screen. In the case of the sports site, this is the duration from when the user navigates to the site until when the site is visually complete loading. Our objective is to display the results of these user actions faster than any browser, providing customers with real-time responsiveness.
  2. Elapsed Time
    Most sites continue to perform work in response to the user action after the content has been displayed to the screen. This might include downloading user data (e.g., email messaging) or sending analytics back to a provider. From the users’ perspective the site might appear loaded, however significant work is often occurring in the background which can impact responsiveness. Our objective is to execute the Web site code (HTML, CSS, and script) more efficiently than any browser—making sites load faster, Web experiences more responsive, and enabling Web developers to create richer experiences.
  3. CPU Time
    Web browsers are almost exclusively limited by the CPU. What work a browser performs on the CPU and how efficiently that work occurs will make the single largest impact to performance. That’s one of the reasons offloading work to the GPU has made such a significant impact to IE9’s performance. The amount of CPU time required to perform the action and the CPU efficiency are critical. Our objective is to more effectively use the CPU and leverage multiprocessor architectures better than any browser.
  4. Resource Utilization
    Building a fast browser means ensuring resources across the entire PC work well together. This includes network utilization, memory usage patterns, GPU processing, graphics, memory, and hundreds of other dimensions. Since customers run several applications at the same time on their PC, it’s important for browsers to responsibly share these resources with other applications. Our objective is to effectively use system resources like the GPU while requiring less system resources (including working set, CPU load, and GPU load) than any modern HTML5 browser.
  5. Power Consumption
    When utilizing the underlying PC hardware it’s important to take power consumption into consideration. The more efficiently a browser uses power, the longer batteries will last in mobile scenarios, the lower the electricity costs for operating the device, and the smaller the environmental impact. Power and performance are complimentary goals and our objective is to require less power than any other browser without compromising performance.

Internet Explorer 9 Beta was a great step toward achieving these goals. What’s coming next will provide an equally significant step forward. Over the next few weeks we’re going to talk more about each of these five objectives, discuss how we measure progress against these objectives, and share our internal engineering analysis. First, though, we’re heading to San Francisco.

—Jason Weber, Lead Program Manager, Internet Explorer Performance