最近很长一段时间,不知道是我开启的程序确实是多了呢?还是开发商开发的程序越来越腐败,越来越垃圾。总之,最近一直弹出提示内存不足,让关闭某些程序的对话框,如下:
以前没有这种情况,可是最近几个月却总是出现这种情况,不知道是升级系统升级的原因还是什么?总之,不管什么原因,总不能纠结不管吧!今天返校第一天,事宜的温度让我想起了这个问题,第一反应是”虚拟内存”的问题,以前XP时代的时候往往问题都是出现在虚拟内存上。先看看Windows7的虚拟内存,竟然发现Windows7的虚拟内存尽然没有开启,唉!!!开启一下试试:
网上还有一种情况的说明如下:
在当Windows 7提示”内存不足”,我们介绍过出现这种情况多是因为默认的Desktop Heap区间被占满所致,并给出将desktop heap区大小从默认的3072KB提高到需要数值的办法。不过,许多朋友依步骤进行调整后发现,仍然没有从根本上解决这一问题,上述的故障仍然时不时地再次出现,那么,问题出在哪儿?
其实,在Windows NT 家族系统中,除了desktop heap区的限制外,默认的用户句柄(User Handle)与GDI 句柄(GDI Handle)限制同样是引发上述故障的原因之一,特别是考虑到之前系统物理内存普遍较少的客观情况,默认的用户句柄与GDI 句柄数量也成为Windows 阻止同时打开更多程序/窗口的另一个主要原因。
解决方案很简单,那便是将默认的用户句柄与GDI 句柄数量修改为较大的数值。
提高Windows默认的默认的用户句柄与GDI 句柄数量
在Windows 7开始菜单的搜索框中输入”regedit”,按回车;注册表编辑将会触发UAC而弹出提示窗口,点击确认继续;
按当Windows Vista提示”内存不足”介绍的方法,首先将desktop heap区的大小从默认的3072KB提高,检查问题是否解决,如没有解决,再尝试以下的步骤;
找到如下注册表分支:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NT CurrentVersionWindows
在右侧窗口中可以看到名为”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出现不稳定的症状,便需要将相应的数值调低些,或者恢复默认值。
注:修改注册表存在风险,请谨慎操作,最好在修改前备份注册表,以当系统故障时恢复。