天天看点

突破Windows系统默认用户句柄与GDI句柄限制

如今,内存越来越便宜,许多朋友为自己的PC配备了高容量的内存,以期得到理想的系统性能,1G、2G甚至更多内存的PC已经很常见了。但是,出乎许多朋友意料的是,即使Windows系统,不仅仅Windows Vista也包括Windows 2000/XP/2003,具有2GB甚至更多的内存,有时也会遇到Windows Vista提示“内存不足”警告的情况,或者虽无提示但程序窗口无法打开,或程序窗口虽然打开但却不完整如缺少菜单、按钮等,而事实上,这时仍有相当部分的物理内存闲置,颇令许多朋友困扰,难道为Windows配备这么大的内存便是一种浪费么?

其实,在Windows NT 家族系统中,除了desktop heap区的限制外,默认的用户句柄(User Handle)与GDI 句柄(GDI Handle)限制同样是引发上述故障的原因之一,特别是考虑到之前系统物理内存普遍较少的客观情况,默认的用户句柄与GDI 句柄数量也成为Windows 阻止同时打开更多程序/窗口的另一个主要原因。

解决方案很简单,那便是将默认的用户句柄与GDI 句柄数量修改为较大的数值。 

突破Windows系统默认用户句柄与GDI句柄限制

在Windows Vista开始菜单的搜索框中输入“regedit”,按回车;

找到如下注册表分支:

HKEY_LOCAL_MACHINE   – SOFTWARE   – – Microsoft   – – – Windows NT   – – – – CurrentVersion   – – – – – Windows

在右侧窗格中可以看到名为“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出现不稳定的症状,便需要将相应的数值调低些,或者恢复默认值。

注:

本技巧适用于Windows 2000、 Windows XP、 Windows Server 2003、Windows Vista;

本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/archive/2007/12/19/1005807.html,如需转载请自行联系原作者

继续阅读