Putting iexplore.exe on a diet

I have gotten very used, very quickly, to the excellent tabbed browsing feature that was introduced with Internet Explorer 7.  This feature was tweaked a fair bit for Internet Explorer 8, but the most noticeable change is that now each tab opens in a separate memory process; this really is great because if the content of one of the tabs causes a crash in iexplore.exe, it won’t cause all the other tabs to crash meaning you lose everything that you had open.  The downside of course is that by having each tab in a separate process, more system memory is consumed – not a problem if you have plenty of memory to spare, but my Anti-MS brother always complains to me about how slow his computer is, even though it only has 128mb of RAM and runs Windows XP plus 300 other applications simultaneously.  Of course, his lack of RAM has nothing to do with the system performance, but rather it is the fault of the operating system – or so he insists (but then he actually believes that VMware ESXi is “just sexy”, so I don’t listen too much).

Anyway, if you want to reign in the memory usage of iexplore.exe a little, you can tweak some settings in the registry.  Changing these will cause, amongst other things, iexplore.exe not to start so many separate processes; a useful tip to save a bit of system memory if you are a bit short but at the cost of potentially losing all open tabs if the content of one of them caused a crash.

 

IEProcesses

 

I saw these tweaks over on the AskIE blog, where they do a pretty good job of explaining what each one does.   have included their explanation below:

 

HKCU\Software\Microsoft\Internet Explorer\Main - TabProcGrowth (string or dword)

Tab Process Growth : Sets the rate at which IE creates New Tab processes.  There are two algorithms used by Internet Explorer.

1. Context-based: By default, the context-based algorithm is used and the curve is chosen based on the amount of physical memory 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.

2. The "Max-Number" algorithm: This specifies the maximum number of tab processes that may be executed for a single isolation session for a single frame process at a specific mandatory integrity level (MIC). Relative values are:

  • TabProcGrowth=0 : tabs and frames run within the same process; frames are not unified across MIC levels.
  • TabProcGrowth =1: all tabs for a given frame process run in a single tab process for a given MIC level.

Note: On Terminal Server, the default value is the integer of 1.

  • TabProcGrowth >1: 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.

Note: that the frame process is no longer allowed to execute at low-MIC. If this is attempted, the process will exit.

You may select the Max-Number algorithm by specifying the registry value as an integer. The registry value may be a string value containing an integer (e.g., "5") or a DWORD value containing an integer (e.g., 5).

In general, you have to restart IE to use a different TPG value.