Sep 19, 2009
My Digital Life Editorial Team

Hack to Launch Only One or Limited Processes of IE8 Regardless of Number of Tabs

When running Internet Explorer 8 (IE8), there will be more than one iexplore.exe processes that are been spawned and launched with every additional tabs or IE window frames. The behavior is due to the fact that IE8 now implements a new feature called Loosely Coupled IE (LCIE) that uses separate instances of the iexplore.exe process for IE frame window and tabs. LCIE provides benefits such as enhance isolation of browsing session and reliability so that IE can restart or re-open an individual tab without losing all IE sessions when problem occurs or crashes.

In fact, by default IE8 will always start with two instances of iexplore.exe (one for the window frame as host process, one for the tab as sub-process), even without any other tab been opened. The number of iexplorer.exe processes will be increasing, and growing as more tabs been opened. IE 8 grows the number of tab processes as needed based on the amount of available RAM, the number of tabs, the integrity levels for tabs, and the number of distinct IE sessions. LCIE allows tabs at different mandatory integrity level (MIC) to be opened within same frame too.

Users who prefer to have only one iexplore.exe process when using Internet Explorer 8 browser, which is similar to IE7 and other web browser such as Firefox and Safari, IE8 does support a registry key value which controls the process model of IE8.

How to Control the Number of IExplore.exe Processes of IE8

Windows operating system uses TabProcGrowth (Tab Process Growth) registry value in the following registry key to set the rate at which IE creates New Tab processes.

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

If the TabProcGrowth doesn’t exist, just create a new DWORD (32-bit) Value or String Value and named as TabProcGrowth accordingly.

TabProcGrowth or TPG

There are four or more possible value data for TabProcGrowth registry key:

  1. TabProcGrowth = <blank> or <absent> or <not defined> : The default setting of IE8 based on context algorithm which allows IE 8 to contextually control how many processes are used and choose the curve based on the amount of physical memory installed on the machine. In addition, the TabProcGrowth string registry value may be manually forced to:
    • small: Maximum 5 tab processes in a logon session, requires 15 tabs to get the 3rd tab process.
    • medium: Maximum 9 tab processes in a logon session, requires 17 tabs to get the 5th tab process.
    • large: Maximum 16 tab processes in a logon session, requires 21 tabs to get the 9th tab process.

    Many IE8 iexplore.exe Processes

  2. TabProcGrowth = 0 : “Max-Number” algorithm that forces IE8 to use the same process for all tabs, window frames and pop-up windows in each browser session. Frames are not unified across mandatory integrity level (MIC) levels.

    Single iexplore.exe Process for IE8

    With TabProcGrowth defines as 0, each IE browser session will create and run in a new instance of iexplore.exe, thus two IE window frames will only have two iexplorer.exe, regardless of amount of tabs opened. There is no frame merging, and protected mode of IE will not be available in Windows 7 or Vista as IE frame and tabs can only operate at different integrity levels if they are in separate processes.

  3. TabProcGrowth = 1 : “Max-Number” algorithm that instructs all tabs for a given frame process run in a single tab process for a given MIC level. Thus, there will be two processes for each IE browsing session or window frame – one process for all the tabs and pop-ups in a browser session and one process for the IE 8 frame window.

    TabProcGrowth to Limit Number of IE8 Processes

    With TabProcGrowth defines as 1, frame merging and protected mode are supported. This setting is good workaround for user who wants to limit the number of iexplore.exe processes running, yet still want to use the protected mode in Windows 7 and Windows Vista.

  4. TabProcGrowth > 1 : Specifying a value data of greater than 1 for TabProcGrowth sets an upper limit (maximum number or value) for tabs processes that allow to be triggered in addition to the IE frame host process. Multiple tab processes will be used to execute the tabs at a given MIC level for a single frame process. In general, new processes are created until the TabProcGrowth number is met, and then tabs are load balanced across the tab processes.

Restart IE after changing to a different TPG (TabProcGrowth) value for the change to take effect.

Related Posts

  • Johnny

    @Rick, there are reason why people want to do this. Why would anyone write an article for something that is useless? There are still many systems out there with less than 2GB of ram which wouldn't want more than a few IE processes spawned. I know many people and even company policies that prohibit installation of IE8 for that very reason.

  • Chris

    This is one of the better articles on the net, the info same as what I seen on a msdn blog.

    Basically to emulate IE7 behaviour and keep protected mode set the tabprocgrowth value to 1 and also start new IE window process's with -nomerge syntax. I am in 2 minds about this at the moment whether or not IE7 or IE8 behaviour is better. The crash redundancy in the IE8 model is probably better but I expect you get higher resource usage and compatability issues as a side affect.

  • Rick

    @magallanes, wow, you really missed the point, but I don't blame you, since this article is a solution looking for a problem. It's a *good* thing that IE and Chrome do this, and other browsers (including your Firefox) will be following suit in future versions.

  • magallanes

    Glad that i use Firefox.