Since IE8 shipped last week, I’ve been following reviews and user feedback closely. A lot of the reactions to Microsoft’s new browser come down to personal preference: Some people like the usability-oriented tweaks Microsoft made, others think the browser is too busy or cluttered. It’s hard to argue with opinions.
But two criticisms have come up repeatedly that can be measured empirically, so I thought I would do that here. One is the burning question of whether IE8 is faster or slower than its competitors; the other is whether it makes reasonable use of system resources. In this post, I explain why some people are seeing performance issues (and share an obscure system tweak that might just cure IE8 performance and stability problems). I also take a closer look at why some browsers use more memory than others.
When it comes to browser speed tests, I have yet to find an objective consensus from the published data. Microsoft’s tests, not surprisingly, show that page load times are competitive with (and in many cases, faster than) its rivals on most popular pages.
That conclusion was borne out by a series of independent tests performed by PC World, which concluded that IE8 really is faster than Firefox:
By and large, we found that Internet Explorer 8 performed well, and beat out Firefox 3.0.7 in the majority of our time trials. However, IE 8's performance advantage is relatively negligible. In most of our testing, IE 8's advantage was half a second or less.
On the other hand, the Wall Street Journal’s Walt Mossberg reached the opposite conclusion in his review:
in my tests, IE8 wasn’t as fast as Firefox, or two other notable browsers — the Windows version of Apple’s new Safari 4 and Google’s Chrome. IE8 loaded a variety of pages I tested more slowly than any of the other browsers, and it grew sluggish when juggling a large number of Web pages opened simultaneously in tabs
I was baffled by Mossberg’s results. When I tried the same tests on several PCs here with IE8, Firefox 3.0.7, and Google Chrome, I got the same results as PC World. In general, all pages loaded so quickly in all three browsers that detecting any difference with a stopwatch was nearly impossible. If I tried to graph the results, it would look like a picket fence.
Then, I heard from a colleague (let's call her Mary Jo), who was having problems nearly identical to those that Mossberg reported. Using IE8 on Windows XP, she reported:
It’s running horribly. I am having a ton of performance problems with multiple tabs open. After opening four or five tabs, things slow down and the tab progress indicator spins endlessly if I try to open a new tab.
Sounds familiar, doesn’t it? In fact, the problem was so bad that simply closing IE wasn’t enough, as multiple processes of Iexplore.exe continued running and had to be killed manually.
We did the basic troubleshooting, checking for the current version of popular add-ons like Flash (up to date) and confirming that system resources weren’t a problem (1GB of RAM on XP should be plenty).
So I checked with a few colleagues on some back channels and discovered a tweak that had worked for other people. From a Command Prompt window, I had her run the following command:
That re-registers the ActiveX Interface Marshaling Library, an obscure DLL that most people (even Microsoft experts) had never heard about. (Update: 27-Mar: Note that if you try this using Windows Vista, you must do this from an elevated Command Prompt window; type cmd in the Start menu Search box, right-click the Cmd.exe shortcut, and then choose Run As Administrator. For detailed instructions with screen shots, see this post.) After restarting her computer, she tried using IE8 again. The results were stunning:
WOW. That really made a difference. It made my performance faster and more stable. Tabs are opening faster and more consistently instead of spinning endlessly.
After several hours, my colleague reported that she was ready to give IE8 a second chance instead of “chucking it and going to Chrome out of frustration.”
Now, about IE8’s memory issues. I’ve heard numerous complaints about Microsoft’s browser using more RAM than its rivals. Are those reports true? The answer, it turns out, is a qualified yes.
To measure the differences, I put together a set of 12 pages and tried loading them on IE8, Firefox 3.0.7, and Google Chrome 184.108.40.206. I then checked memory usage in Task Manager. I repeated these tests on two different Vista machines (one with 1GB of RAM, the other with 4GB) and on a system running Windows XP with 512MB of RAM. Here are the results in graphical form:
[Click to see a larger version of this image]
That yellow bar at the left edge of the chart represents Firefox, which consistently loaded this set of pages in roughly 85MB of RAM. The red bar at the right side of the chart is Google Chrome, which consistently used 214MB to load my suite of pages. The green bars are for IE7, and the blue bars for IE8.
All of the browsers in this test use multiple tabs, but each one takes a different technical approach. Firefox and IE7 use a single process that hosts as many tabs as the system can stand. That means the browser and its supporting files only have to be loaded once, and each tab can share those resources. That explains why Firefox and IE7 are so sparing with memory usage.
Unfortunately, the side effect of that single-process model is that one crashed tab can bring down the entire browser. To work around this major annoyance, IE8 and Chrome use multiple processes. But each takes a different approach to the multi-process model.
Chrome, as far as I can tell, uses one process of Chrome.exe for each tab. That was true no matter how I loaded the pages and regardless of OS. Chrome’s memory usage in this test, 214MB, was higher than all of its rivals, except in one configuration.
IE8 has a fairly complex model for making use of multiple processes. The browser is capable of sharing multiple tabs in a single process while still allowing each tab to be recoverable on its own. In addition, I found that the browser allocated memory differently depending on how much was available from the system. The same set of tabs used 211MB on a 1GB Vista system but required 265MB on a system with 4GB of RAM installed. And the system behaves differently when you open a saved group of tabs, as indicated by the three adjacent bars that use the blue gradient in the chart here. The set of tabs that required 265MB on Vista with 4GB used only 167MB when opened as a saved group. Depending on how I opened the tab set and how much RAM was available, IE8 used as few as two and as many as eight separate Iexplore.exe processes.
The bottom line? Tab isolation requires more memory, whether you use IE8 or Chrome. If you’re bound and determined to use less RAM, use Firefox – and pray that you don’t have a crash.