无限天堂

标题: 2015年1月8日。关于无限一些性能上的重要调整。 [打印本页]

作者: 颓废三道    时间: 2015-1-8 14:59
标题: 2015年1月8日。关于无限一些性能上的重要调整。
今天的调整,理论上说,对你们的游戏没有任何影响。

今天的调整来源于昨天挂机的更改。

以前的挂机,是用一个计时器每3秒循环遍历一次服务器玩家,符合挂机条件的玩家进行打怪操作,用另外一个计时器每16秒循环遍历一次服务器玩家,身边没怪的服务器挂机条件的玩家随机传送。

这样做有时候其实是有风险,在遍历对象时发生异常而我没有对异常现象进行判断,则会全部玩家都无法挂机了。这就是以前发生.4无效的原因。


昨天我突然想到,如果我把计时器取消,单独对玩家进行判断,输入.4就给一个挂机状态,这个状态时间是3秒,状态结束开始打怪,同时再赋予一次这个状态,一直循环,这样即使有玩家出错,也只影响自己,而不会导致别人挂不了机。
但是当我这样变更过后,服务器里出现放魔法卡,挂机延迟不是由3秒变为更长,我GM号测试后台挥刀响应延迟达到400多MS。晚上我重启后,一切正常。

这是一个非常重要的发现,这让之前我无论如何都解释不通的人多打架挥刀和放魔法延迟得到合乎逻辑的解释:每一个状态都有一个计时器控制,我采用赋予状态的方式来挂机,实际上相当于凭空多出了几百个计时器,而打架的时候,各种负面状态的计时,也是增加了很多计时器,导致卡。

之前我们的魔法冷却时间也是用计时器实现的,在上一次的优化中更改了这一点,当时我们感觉放魔法卡,实际上应该是计时器的问题,而不是封包队列的问题,我们的方向都走错了。。。
我之前取消所有魔法武器的魔法显示,就以为是封包队列的问题。

所以刚才,我检查了一下,对核心进行了一些优化,关闭了一些开启了但是我们没有用到的功能,一些不必要的状态控制类。这些更改将在晚上实装上去,然后观察效果,如果有效,后面会针对这个做专门的优化。


作者: luckies___    时间: 2015-1-8 15:12
撒花!技术突破啊!以后可以容纳更多玩家啦!
作者: yangzichen    时间: 2015-1-8 16:12
关闭了一些开启了但是我们没有用到的功能

什么功能?
作者: AARONAI    时间: 2015-1-9 02:26
这个要举双手顶
作者: 6771312    时间: 2015-1-9 14:11
不明觉厉。
作者: andy30183    时间: 2015-1-9 16:03
技术贴= =!完全看不懂= =!许久不见三道已经是技术大师了吗= =!
作者: yangzichen    时间: 2015-1-9 17:57
可能之前一直在挂机,没有PK,不知道卡不卡~
现在偶尔手动砍怪或者PK的时候,发现还是有点卡~望解决~~




欢迎光临 无限天堂 (http://156.236.70.90/) Powered by Discuz! X2.5