Registry setting keeps Windows from wigging out when you open lots of IE7 tabs
Summary
Opening too many tabs in Internet Explorer 7 can cause the Windows shell to switch to "Evil Mode". Fortunately, there's a registry setting that fixes the problem by increasing the Windows heap size.
The Problem
Internet Explorer starts to go nuts when you open a lot of tabs. Jeff Atwood wrote that he started to see problems when he had IE 45 tabs open:
When researching blog posts, I tend to open a lot of browser windows and tabs. At least twice per week, I have so many browsers and tabs open that I run into some internal limitation of the browser and I can't open any more. My system gets a little wonky in this state, too: right-clicking no longer shows a menu, and I'm prevented from launching other applications. But if I close a few errant browser windows or tabs, everything goes back to normal.
I've hit this problem regularly in both Windows XP and Vista - when I open a lot of tabs in IE7, weird things start happening. While IE and File Explorer are no longer integrated beyond sharing some base DLL's, the problems caused by opening too many IE tabs will affect File Explorer and the rest of the Windows shell.
Some of the problems I'd see:
- The context menus in File Explorer are missing a lot of options or don't display at all
- Programs will fail to open when you double-click on a shortcut
- The Start Menu doesn't open
- General malaise
Closing tabs or windows seemed to help the problem, but sometimes the only solution was a reboot. That was especially annoying for me, as I tend to leave my computers running for month and have been known to have multitudes of tabs open for weeks on end.
EnableEvilMode=false
Fortunately a comment on Jeff's blog points to a solution in Ed Bott's blog: Increase the size of the Desktop Heap. Like a lot of software problems, this one is hard to figure out until you know what's causing it. Once you know the cause, it all kind of makes sense and it's easy to find out more. Sure enough, Kevin Dente wrote about this exact problem under Windows XP almost 4 years ago:
According to a somewhat dated but still relevant MS KB article, “this static value is used to prevent ill- behaved applications from consuming too many resources”. Well, apparently it IE meets the “ill-behaved” criteria, because it seemed to cause Windows to bump into this limit, and Windows wasn’t handling it very gracefully. Anyway, to make a long story longer, when I bumped up the desktop heap size (from its default of 3MB up to 8MB), bingo, all of the problems magically disappeared. Whew, what a relief.
To make this change, navigate regedit to HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session Manager\\SubSystems. The “Windows” value contains a big honkin’ string, and one part of it is “SharedSection=xxxx,yyyy,zzzz”. The second number (yyyy) is the one that you want to increase.
I usually provide the text for a REG file whenever I recommend a registry change, but because this is smack dab in the middle of a long, complex string it's only you'll have to take care of manually. The good news is that I've tested this for months on three Windows machines (2 Vista, one XP) and it's worked great.
If you're interested in understanding exactly what the Shared Section of the Desktop Heap has to do with IE tabs and the Windows Wonkiness (a technical term), there's more information on the NT Debugging blog.