Difference between revisions of "Desktop Heap Limitations"

(Tip for making it possible to have many window opened.)
 
(Desktop Heap Information Monitor Tool)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
The following is taken from [http://blogs.msdn.com/tonyschr/archive/2005/05/25/desktop-heap-limitations.aspx Tony Schreiner's Weblog]
+
[[Category:Windows]]
 +
==[http://blogs.msdn.com/tonyschr/archive/2005/05/25/desktop-heap-limitations.aspx Tony Schreiner's Weblog]==
  
 
If you have a lot of applications open one thing you might notice is that Windows -- even XP -- will reach a point where no more windows can be opened. For me, IE hits this point after about 40-50 windows. Depending on what else you have running, you may be able to open more or less.
 
If you have a lot of applications open one thing you might notice is that Windows -- even XP -- will reach a point where no more windows can be opened. For me, IE hits this point after about 40-50 windows. Depending on what else you have running, you may be able to open more or less.
Line 7: Line 8:
 
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
 
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
  
So that it has the following value:
+
Which usually has the following value:
  
 
  Windows="%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
 
  Windows="%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
Line 13: Line 14:
 
  ServerDll=winsrv:UserServerDllInitialization,3
 
  ServerDll=winsrv:UserServerDllInitialization,3
 
  ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
 
  ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
  MaxRequestThreads=16"}}
+
  MaxRequestThreads=16"
  
 
and change '''3072''' to a larger value such as '''4096'''. Always use caution when editing your registry; standard disclaimers apply.
 
and change '''3072''' to a larger value such as '''4096'''. Always use caution when editing your registry; standard disclaimers apply.
Line 19: Line 20:
 
For more information see: http://support.microsoft.com/default.aspx?scid=kb;EN-US;184802
 
For more information see: http://support.microsoft.com/default.aspx?scid=kb;EN-US;184802
  
Note: 64-bit versions of Windows have a much larger default desktop heap limit, and you should not hit this issue.
+
{{Note| 64-bit versions of Windows have a much larger default desktop heap limit, and you should not hit this issue.}}
  
EDIT: The new NT Debugging blog has a post that talks in greater deal about Desktop Heap and how to troubleshoot issues: http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx
+
{{Note| The new NT Debugging blog has a post that talks in greater deal about Desktop Heap and how to troubleshoot issues: http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx }}
 +
 
 +
== Desktop Heap Information Monitor Tool ==
 +
 
 +
You can download the following tool from Microsoft to get an idea about how much is being used by the Desktop Heap: [http://www.microsoft.com/downloads/details.aspx?FamilyID=5cfc9b74-97aa-4510-b4b9-b2dc98c8ed8b&DisplayLang=en Desktop Heap Information Monitor Tool].

Latest revision as of 16:52, 28 March 2007

Tony Schreiner's Weblog

If you have a lot of applications open one thing you might notice is that Windows -- even XP -- will reach a point where no more windows can be opened. For me, IE hits this point after about 40-50 windows. Depending on what else you have running, you may be able to open more or less.

Usually this is not a problem, but if you find yourself running into this limit the workaround is to increase the Desktop Heap. To do this, edit the following key in the registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]

Which usually has the following value:

Windows="%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
MaxRequestThreads=16"

and change 3072 to a larger value such as 4096. Always use caution when editing your registry; standard disclaimers apply.

For more information see: http://support.microsoft.com/default.aspx?scid=kb;EN-US;184802

Information.png Note: 64-bit versions of Windows have a much larger default desktop heap limit, and you should not hit this issue.

Information.png Note: The new NT Debugging blog has a post that talks in greater deal about Desktop Heap and how to troubleshoot issues: http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx

Desktop Heap Information Monitor Tool

You can download the following tool from Microsoft to get an idea about how much is being used by the Desktop Heap: Desktop Heap Information Monitor Tool.