查看: 6548|回复: 41
打印 上一主题 下一主题

对于缓解WIN7系统下梦幻西游频繁卡顿的一个试探性解决方案

[复制链接]
跳转到指定楼层
楼主
发表于 2013-10-27 13:05:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自:浙江
本帖最后由 songsixiaohao 于 2013-10-27 13:47 编辑

自从梦幻西游采用xyqsvc.exe这个进程来解决锦衣祥瑞加载的问题以来,就一直有玩家不断的喊卡喊难以忍受。此贴仅讨论下非服务器原因以及非网速原因导致卡顿的最大可能性,以及尝试给出一个解决方案供有需要的各位进行尝试,顺便验证一下这个理论的正确性。
    正文开始:之所以想起来写这个帖子是因为楼主最近也遇到了这个问题。之前一直是好好的,突然的就开始卡顿。在人少的地方稍好,但移动过程中依然会卡顿会无响应,非常频繁。这种卡顿的频繁性无疑是不正常的,于是楼主尝试在论坛里找寻解决方法。方法没找出来一个,问题倒找出来一大堆。楼主在用尽能想到的各种方案尝试后仍然无效的情况下将梦幻文件夹整体迁移至另一盘符,奇迹发生了,卡顿的情况瞬间消失,流畅度堪比初装系统的时候。对比以前众人帖子里提供的线索,脑内整理了一下,提出个假设,各位不妨来看一看。

    梦幻是一款2D游戏,它的UI机制是通过从硬盘里不断调取图片进内存从而送给显卡GPU来输出到屏幕上。各位注意,这种机制和3D游戏完全不同。3D游戏的图形显示是基于代码指令的,而非图片。显卡GPU读取的是游戏客户端所接受的服务器发出的图形指令,GPU根据相应指令调取自身以及游戏自带的图形显示代码来构建基于浮点运算的3D图形显示。这二者的最大区别在于,2D游戏访问硬盘的数据量要大于3D游戏
    所以对那些玩3D游戏不卡但一玩梦幻就卡顿的电脑我们足以相信:电脑本身的CPU GPU 内存等都是没有任何问题的,真正的问题可能出在硬盘。
    我们来看看简单的机械硬盘(hdd)访问机制:CPU接到指令,调取硬盘数据进内存,然后读取内存中的信息后反馈给其他软件硬件。梦幻西游的图片等数据集中保存在梦幻西游对应文件内,文件数据以二进制码的方式保存于硬盘固定的扇区之上,硬盘磁头通过读取硬盘上的对应扇区来访问文件数据。这和固态硬盘(ssd)机制完全不同:ssd内是没有磁盘的,也不存在什么磁头。它完全由电流控制电子存储芯片来实现01二进制码,也就没有hdd的寻道时间等等问题,从而速度远远快于hdd。
    这有什么意义呢?有个别玩家反应换了ssd后就再也没出现类似现象了。到这里我们可以猜测:hdd硬盘频繁的寻道以及频繁读取同样扇区数据导致了梦幻的卡顿
    不知有过经历的大家有没有在意:当你频繁出现卡顿的时候,画面内的锦衣人物以及祥瑞等等的加载都很慢。更有甚者,在查看摊位的时候摊子显示的很快 但对应格子却迟迟无法加载出图片信息,鼠标放上去却可以显示出物品说明。这实际上是进程没有及时的获取图片信息导致的。进程需要从内存中获取信息,内存需要从硬盘获取,硬盘需要从磁头寻道并读取信息。内存给进程提供数据的过程是非常快的,而硬盘给内存提供信息就会慢上很多。于是我们可以相信,是硬盘给内存提供信息的过程出了问题。
    为什么硬盘会突然出现问题呢?相信很多朋友有过发现硬盘坏道的经历。这就是个别扇区的存储物理介质因为外力因素导致了物理性质的改变。当然,这个外力就很多了,包括局部过热,外力震荡,以及磁头频繁读取导致的问题。楼主改变了梦幻西游文件夹的存储路径从而使卡顿消失,实际上就是改变了数据存储的扇区,把数据迁移至硬盘上的其他扇区,从而使得磁头频繁读取信息的位置发生了变化,从而解决了问题。不过这并不意味着旧的扇区出现了损坏,很大的可能性是磁头频繁的读取同一扇区导致该扇区的物理层发生了一些轻微的变化。虽然是轻微的,但这会导致磁头对数据的不敏感导致重复读取,增加了信息读取的时间,从而最终导致GPU无法及时渲染出图片,因此卡顿。


    啰嗦了一大堆,方案很简单:你可以尝试把梦幻西游文件夹整体复制或迁移到其他的盘符上,可能会有好转。如效果不明显可以尝试采用ssd。当然,跟换对各个硬件要求较小的xp系统也不失为一个好方法

    最后抱怨一句:就算有内存的释放机制,梦幻作为一款2D游戏需要读取的图片数据也太腻马多了= =

评分

参与人数 3人气 +25 收起 理由
旧梦矢约° + 10
梦天凌 + 5
绝恋碎心鱼 + 10

查看全部评分

收藏收藏 分享淘帖 支持支持 反对反对 赞赞(0)
【论坛近期活动汇总】
回复

使用道具 举报

沙发
发表于 2013-10-27 13:06:10 | 只看该作者 来自:四川
顶起。。。。。
回复 支持 反对

使用道具 举报

3
发表于 2013-10-27 13:08:06 | 只看该作者 来自:浙江
表示用SSD当主系统 HDD当辅助 4K对齐加速 在HDD上照样卡 除非在SSD上玩 win8.1下玩 游戏关系还会报xyqsvc.exe错误 开着梦幻开网银还会客户端异常  真心不解释WY的程序猿有多么垃圾 这DeBUG能力 呵呵 不解释
回复 支持 反对

使用道具 举报

4
 楼主| 发表于 2013-10-27 13:14:00 | 只看该作者 来自:浙江
表示用SSD当主系统 HDD当辅助 4K对齐加速 在HDD上照样卡 除非在SSD上玩 win8.1下玩 游戏关系还会报xyqsvc.e ...
cflnice 发表于 2013-10-27 13:08


那个报错不是硬件问题,也和卡顿无关。记得坛子里有人解决过,是安装了微软的某个框架文件,记不得是哪个了。不过确实是软件BUG
回复 支持 反对

使用道具 举报

头像被屏蔽
5
发表于 2013-10-27 13:14:54 | 只看该作者 来自:江苏
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

6
发表于 2013-10-27 13:16:14 | 只看该作者 来自:江苏
楼主说的很符合我得情况啊,网易得技术部门就不能给解决下吗?
回复 支持 反对

使用道具 举报

7
发表于 2013-10-27 13:27:38 | 只看该作者 来自:浙江
网易的技术部门白拿薪水的。。。
回复 支持 反对

使用道具 举报

8
发表于 2013-10-27 13:38:12 | 只看该作者 来自:广东
感谢楼主分享经验,另外需要提到的是,尽量是放在盘符靠前的分区,读取速度相对要快。关于图片多= =只能说是游戏时间长,内容自然也就比较多
回复 支持 反对

使用道具 举报

9
发表于 2013-10-27 13:42:02 | 只看该作者 来自:江苏
楼主你好,我们的程序员正在夜以继日的加班加点的给服务器机箱吹灰,擦金手指,涂硅脂。请每次打开梦幻之前配合我们将电脑设备送干洗店干洗。
回复 支持 反对

使用道具 举报

10
发表于 2013-10-27 13:43:03 | 只看该作者 来自:广东
其实,我的监控系统早就注意到游戏文件的问题,不断的在读写硬盘,而且把I/O的接口都占满了,我不知道网易的工作人员有没有用软件进行测试,一个大型的3D游戏都不会对硬盘进行这么多的读写次数,但梦幻用缓存目录来生成临时的特效?我不知道有没有,但不信的同学而且使用window7的,可以使用资源管理器的监视器进行监察简易的数据读写数据,你会发现梦幻里面进程里面的简单的数据比较,基本可以和系统的缓存一拼了。。
回复 支持 反对

使用道具 举报

11
发表于 2013-10-27 13:48:15 | 只看该作者 来自:河南
lu路过学习了 。。。
回复 支持 反对

使用道具 举报

12
发表于 2013-10-27 14:08:19 | 只看该作者 来自:广东
看来杂谈还是挺多同行啊
回复 支持 反对

使用道具 举报

13
发表于 2013-10-27 14:08:58 | 只看该作者 来自:江苏
亲测有效
回复 支持 反对

使用道具 举报

14
发表于 2013-10-27 14:16:06 | 只看该作者 来自:河北
其实游戏发展到现在,如果完全修改引擎不现实。最实际的给用户创造最佳用户体验的方法还是设置永久性F9。
回复 支持 反对

使用道具 举报

15
发表于 2013-10-27 16:27:06 | 只看该作者 来自:山西
本帖最后由 damen3090 于 2013-10-27 16:30 编辑

梦幻卡的根本原因 就是梦幻是固定死30帧, 不管你机子快还是慢,效果都一样,在几年前这就是网易所谓低配置也能玩梦幻,而现在高配置也要跳帧。
另外梦幻客户端和服务端的程序做的太垃圾也是卡的原因。

我电脑有16g内存,搞了个内存硬盘,把梦幻整个游戏都放到内存里, 运行起来效果和物理硬盘上的没区别,该卡的时候还是卡
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则