字号:

深度分析天刀内存不足原因 及策略汇总

时间:2017-06-21 09:19 作者:塔塔和雅雅 手机订阅 参与评论(0) 【投稿】
文 章
摘 要
深度分析天刀内存不足原因,以及应对的几种策略汇总。

最近有连续几个帖子都在讲天刀内存不足的问题,我稍微看了一下,有一点触及本质了,但解决方法可能没有简单到一条指令就够。

本文主要是希望从目前掌握的一些线索上来研究天刀客户端发生闪退的原因,并针对这些发现的情况作出一定的调整。

经过后续几个方面的设置,肯定会对提升游戏稳定性有正面帮助,降低闪退、“内存不足”等原因产生不稳定的概率。

但如果需要革命性的稳定改进,需要天刀客户端整体从32位升级至64位,这是一个浩大的工程,不是玩家层面可以搞定的。

从大的原因上面来看,闪退或者内存不足,还是来自于装机内存容量、客户端所需内存超越上限为主。

但是,报错的问题比较复杂,遇到的几次报错偶发性太强没有看出什么规律,是否也与内存有关有点吃不准,我感觉报错可能还有服务器因素在。

我们来看一下为什么会跳内存不足。打开天刀以后,鼠标右键状态栏,选择任务管理器。

1.png

我们可以在“详细信息”分页观察天刀的客户端进程:Wuxia_client.exe的内存占用:

2.png

从我的观察来看,“内存不足”这个问题很多人来自于:天刀单进程内存消耗达到32位程序上限的制约,我把这种现象命名为“内存墙”。

可以看到上图目前是一个比较正常的游戏环境,我在杭州城挂机,内存的占用为1.6GB。

但是很多8GB内存的机器,由于操作系统的限制,系统为了保留必要的内存需求,天刀客户端只允许被分配到最大为2GB占用。

有一个帖子提到单进程内存扩展到4GB,我认为没有那么简单。

bcdedit /set increaseuserva这个指令,源于当年32位系统上单进程2GB限制的内存扩展,但我觉得这个问题可能并不完全解决问题。

因为我们目前绝大多数跑天刀的windows系统都是64位,而64位系统对单进程设置的机制并没有找到一个合适的说明文档,increaseuserva是否继续有效仍然需要怀疑。

一旦出现大规模战斗或人群聚集,天刀客户端的内存占用会飙到2.8-3GB+(大规模帮战实测),所以如果单进程只允许2GB分配必然造成客户端提示内存不足甚至直接闪退。

这个问题我在网吧机器上测试过,反复观察了几次,一旦超过2GB马上客户端跳内存不足,而且同时间听到YY上有玩家抱怨内存不足问题。

但家里16G内存的WIN7 64位系统并没有出现这个问题,也没有单独设置过increaseuserva,内存占用飙高到2.9GB也很稳定。

但是如果画面调高而且人更多,单进程超过3GB的占用,天刀是个32位程序,3GB其实已经是很多32位程序调用内存的极限了,还是出现会报错以及内存不足。

这种情况下的报错或者内存不足,就算是装了10000G内存的电脑都没用,需要天刀客户端改成64位了,很显然这是不存在的。

因此,关于内存不足的问题基本上解决思路有以下几种(WIN7/8/8.1/10):

1、最好的解决办法还是买内存,16G内存比8G稳定很多很多。16G内存出现问题的概率会显著降低。

2、玩天刀的时候尽可能的少开别的软件,尤其是chromium内核系列的浏览器,内存占用贼大。

3、人多的时候降低画质,开启屏蔽,并以窗口化运行,会减少一定的内存开销。(这些设置会减少20%的内存消耗)

4、可以尝试技术贴 真正解决天刀游戏耗尽的问题当中对单进程内存限制的increaseuserva指令。<<原贴点我进入>>

但他忘记提到一点就是要以管理员模式运行,不然会提示无权修改。而且根据微软的说明文档,increaseuserva的参数最大只能设置为3072,4096这个参数是否有效也不确定。

欢迎用了increaseuserva命令以后对解决内存不足有正面贡献的玩家现身说法,实践才是检验真理的唯一标准。

3.png

来源:微软关于increaseuserva的说明

5、将Wuxia_client.exe进程优先级设置为“高”,这个可能是所有帖子都没有提到的方法。

这个线索来源于之前看到的一个案例,说的是给进程分配了更高的优先级以后,占用了更多的内存。原先对优先级的设置主要侧重于cpu资源的分配,但从那个案例中发现系统对该进程的内存分配也发生了明显变化。

不过,缺点是这个方法需要每次打开游戏后都进行手动设置任务管理器。

4.png

6、调增虚拟内存

虚拟内存的调增也可能会有一定帮助,但我觉得这并不是闪退的主要原因,因为一般的系统安装时都已经进行了自动设置,但有的网吧机器或者过度优化后,如果系统被单独设置过还是可能在这个上面出现问题。

前几天那个误导人的帖子我实在是不想说,稍微懂一点电源铭牌的人都不会像那个楼主说出什么550瓦输出功率乘以转化效率89%等于489.5瓦这种啼笑皆非的东西来。

附件:单进程突破2GB限制批处理文档(就是用上面提到的increaseuserva命令制成的)>>点击进入原贴下载附件<<

如果没有以管理员模式运行,就会出现下面的情况:

5.png

有没有比较大佬一点的专家来共同探讨一下应对的策略,我本人不是专业搞IT方面的,不是太懂电脑,上面只是凭自己一点爱好和小知识来采取的方法。

8楼@RamSpace提到了一个cacheman的软件,粗略看了一下功能,觉得应该有效。有能力的玩家可以试试,但这软件我不是很熟悉,这几天有空研究研究。

加入17173玩家俱乐部,100%领《原神》月卡、《王者荣耀》888点券、《魔兽世界》T恤等周边好礼!
加入方式:微信关注“17173服务号”