能够解决 龙之谷OUF OF MEMORY的最好办法

社区服务
高级搜索
猴岛论坛综合游戏交流能够解决 龙之谷OUF OF MEMORY的最好办法
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
2个回复

能够解决 龙之谷OUF OF MEMORY的最好办法

楼层直达
喝曲听小酒り

ZxID:10740007

等级: 元帅

举报 只看楼主 使用道具 楼主   发表于: 2011-07-15 0



无数次 雷兽完了OUT 无数次 天启进图OUT

  而且很悲剧的是 OUT的时候我还有1GB的空闲内存。

  4GB的 内存居然无法满足龙之谷。。

  虽然32位系统理论上只支持3GB的内存

  为了解决这个问题 百度了N多方法

  无非就是 设置撒子虚拟内存,关闭预读等等 无道理 无原理的方法

  在我绝望得想装双系统 换成XP 的时候 我发现这个神贴。

  从此我不在OUT~~~



  out of memory 的意思是内存不足。

  作为一个有着些年头WIN32 C++ 开发经验的程序员我不同意WIN7 的预读等等说法,因为我不认为系统的预读会占用用户地址空间,起码来说,预读功能是单独的系统服务,独立的进程。而系统的内存不足的话,windows肯定会有提示,不知道大家有没有遇到过,右下角出现一个*的小三角提示虚拟内存太小。

  曾怀疑过是DN程序内存泄漏或者没有考虑到内存空间导致申请的内存超出2GB,而导致此问题,但是每次出此BUG时我去观察内存占用情况却发现一般都保持在1.5G。所以一开始排除了这种可能,不过今天忽然想到一点,就是内存映射文件,而DN的资源包最大恰好是0.5G。 因此极其有可能是这个原因。(内存映射方式打开文件虽然不会将整个文件加载到内存,但是会占用与文件大小相等的地址空间,而win32系统 进程的最大地址空间是4GB 其中默认用户地址空间是2GB,也就是说做为程序员一个进程最多也就2GB的地址空间而出现内存不足提示的时候DN进程的内存使用是1.5G加上0.5G的资源包地址空间大概已经达到2GB因此当再申请内存的时候就会失败。)

  说这些估计很难有人理解,那么说一下解决方案吧,(我没DN的源码没办法去修改他内部的BUG所以只能从其他地方想办法了)以下是重点。

  修改WINDOWS启动配置,让进程用户地址空间达到3GB

  windows 7系统:

  1.进入命令行: 点击开始菜单 -> 在搜索框中输入 "cmd",按下 ctrl + shift + 回车(命令行的*员模式)

  2.输入命令:bcdedit /set increaseuserva 3072 回车

  3.重启系统.

  xp系统:

  1.去掉引导文件只读等属性:开始 -> 运行 输入"attrib c:\boot.ini -h -r -s" 回车

  2.编辑引导文件:开始 -> 运行 输入"c:\boot.ini" 回车,在类似“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect” 这一行最后加上“/3GB” 保存。

  3.恢复引导文件只读等属性:开始 -> 运行 输入"attrib c:\boot.ini +h +r +s" 回车

  4.重启系统.

  (感谢 永远の不死 提醒 XP系统编辑引导文件可以 直接 我的电脑 -> 属性 -> 高级 -> 启动和故障恢复 设置 -> 编辑 弄完别忘保存)



去你大爷!

ZxID:5469089

等级: 元老

举报 只看该作者 板凳   发表于: 2011-07-17 0
谢谢分享。
                 
ヘ苍凉君″

ZxID:15325869

等级: 少校
当你走上了管理,你代表的不是个人,而是整个团队!
举报 只看该作者 沙发   发表于: 2011-07-16 0
加油。
« 返回列表
发帖 回复