当系统运行大量应用程序的时候,会有资源不足的问题发生,其实并不是内存不够用,而是系统对 GDI object 和 User Handle 的数量进行了限制
参见
http://bbs.vista123.com/redirect.php?tid=12558&goto=lastpost
http://bbs.vista123.com/thread-12557-1-1.html
解决办法
1. 提高desktop heap大小,缺省3072,可以改为8192
找到如下注册表分支:
HKEY_LOCAL_MACHINE
– SYSTEM
– – CurrentControlSet
– – – Control
– – – – Session Manager
– – – – – SubSystems
在右侧面板中,找到名为“Windows”的注册表项,双击; 其中有一段"SharedSection=1024, 3072, 512", 将其中的3072改为8192, 系统必须重新启动才能生效。
参见 http://support.microsoft.com/kb/184802
2. 找到如下注册表分支:
HKEY_LOCAL_MACHINE
– SOFTWARE
– – Microsoft
– – – Windows NT
– – – – CurrentVersion
– – – – – Window
在右侧窗格中可以看到名为“GDIProcessHandleQuota”与“USERProcessHandleQuota”的注册表项;
GDIProcessHandleQuota项设置GDI句柄数量,默认值为2710(16进制)/10000(10进制),该值的允许范围为 256 ~ 16384 ,将其调整为大于默认的10000的值。如果您的系统配置了2G或更多内容,不妨将其设置为允许的最大值 16384(10进制);
USERProcessHandleQuota项设置用户句柄数量,默认值同样为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值。同样地,对于具有2GB或更多物理内存的系统,不妨将用户句柄数直接设置为上限 18000(10进制);
需要强调的是,修改“GDIProcessHandleQuota”与“USERProcessHandleQuota”值时,不要超过其接受的上限,不 然,将导致Windows 无法工作或运行不稳定。另一方面,即使您的调整其超过其允许的上限,如果发现修改后Windows出现不稳定的症状,便需要将相应的数值调低些,或者恢复 默认值。