编者:李国帅
qq:9611153 微信lgs9611153
时间:2012/9/26 8:58:48
背景原因:
经常有个疑问:一个应用程序可以占用多少句柄?
制作播放器的时候,需要留意句柄数量,因为随着分屏的数量增加和界面的切换,句柄在不停变化。播放器占用的句柄不少,一个播放器开始播放就占用100多个句柄。不过播放16个视频暂时看来是够用的。
如何修改注册表:
找到如下注册表分支:
HKEY_LOCAL_MACHINE
– SOFTWARE
– – Microsoft
– – – Windows NT
– – – – CurrentVersion
– – – – – Windows
在右侧窗格中可以看到名为“GDIProcessHandleQuota”与“USERProcessHandleQuota”的注册表项;
说明:
默认一个应用程序最多只有10000个句柄和GDI对象
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出现不稳定的症状,便需要将相应的数值调低些,或者恢复默认值。
可查看任务管理器的中的句柄数量,进行程序检测。