为什么我玩穿越火线的电脑游戏不到十分钟就卡了?这是怎么回事?谁能帮忙?谢谢!!!
以下是别人写的。可以试试。
一种解决内存不足的方法;
被遗忘
内存不足。
作为一个有多年WIN32 C++开发经验的程序员,我不同意WIN7。
预读之类的,因为我觉得系统的预读不会占用用户地址空间。至少,预读功能是一个单独的系统服务,一个独立的进程。如果系统内存不足,windows肯定会提示。不知道大家有没有遇到过。右下角出现一个带*的小三角形,提示虚拟内存太小。
曾经怀疑是DN程序内存泄露或者没有考虑到内存空间,导致应用内存超过2GB的问题,但是每次出现这个BUG,我都去观察内存占用情况,发现一般都保持在1.5G G,于是一开始排除了这种可能,但是今天突然想到一个内存映射文件,DN最大的资源包正好是0.5G。
所以很有可能就是这个原因。(虽然通过内存映射打开文件不会将整个文件加载到内存中,但是会占用与文件大小相等的地址空间,win32系统进程的最大地址空间是4GB。
其中默认的用户地址空间是2GB,也就是说作为程序员,一个进程最多只有2GB的地址空间,而当有内存不足的提示时,DN进程的内存使用量是1.5G加上0.5G的资源包地址空间,大概已经到了2GB,所以再次申请内存时会失败。)
这些估计很难理解,那就说说解决办法吧。(我没有DN的源代码,无法修改它的内部bug,只能从其他地方想办法。)以下是重点。
修改WINDOWS启动配置,使进程用户地址空间达到3GB。
窗子
7系统:
1.进入命令行:点击开始菜单-& gt;在搜索框中输入“cmd”并按ctrl+shift+。
回车(命令行*成员模式)
2.输入命令:bcdedit /set increaseuserva 3072。
返回
3.重启系统。
Xp系统:
1.删除启动文件的只读属性:Start-& gt;运行输入“attrib
C:\boot.ini -h -r -s "回车。
2.编辑启动文件:Start-& gt;运行输入“c:\boot.ini”。
在类似“multi(0)disk(0)rdisk(0)partition(1)\ Windows = " Microsoft Windows XP。
在“professional”/no execute = optin/fast detect”行的末尾添加“/3GB”。
保存。
3.恢复启动文件的只读属性:Start-& gt;运行输入“attrib c:\boot.ini +h +r +s”。
返回
4.重启系统。
(提醒XP系统编辑引导文件直接到我的电脑-& gt;属性-& gt;年长的
-& gt;启动和恢复设置-& gt;编辑后别忘了保存)