敢达争锋对决吧 关注:82,262贴子:4,711,691
  • 3回复贴,共1

频繁掉线的原因——内存泄漏,重大程序bug虽然置顶有3.4

取消只看楼主收藏回复

频繁掉线的原因——内存泄漏,重大程序bug
虽然置顶有3.4 bug收集贴,但这个bug不是3.4版本独有的,只是现在更加明显了,所以特开贴说明。
首先说明,我本人学软件的,所以对这个稍微了解一点,但没有经过详细的测试,所以可能存在错误,希望大家指正。
Bug表现:本人手机是iPhone 8,运行内存2g,连续玩几局游戏后莫名其妙的闪退,在巅峰中表现更为明显,连续两局出现大冰箱接近100%掉线。造成这种现象的直接原因是手机运行内存不足,游戏中无法分配新的内存,导致程序崩溃。所以每个人会因为自己手机的配置不同而出现不同的掉线频率。
分析:为什么说是内存泄漏呢?在普通竞技场中,由于大家的机体远比不上巅峰的阵容,所以游戏中需要计算的各种战斗数据比较少,占用的内存比较少,因而掉线频率低。在理想状态下,每一局战斗结束后,战斗中产生的各种数据占用的临时内存应该统统被回收,因为它们已经没用了,这个步骤称为垃圾回收。如果垃圾回收没做好,每一局战斗都会留下一些内存垃圾,直到把内存占满,所以连续几把游戏之后就会意外崩溃。显然大冰箱的轰炸涉及到的计算量非常大,就会产生大量垃圾,这也是为什么大冰箱非常容易导致掉线。


IP属地:重庆来自iPhone客户端1楼2020-09-24 00:00回复
    所以为了避免游戏中闪退,我不得不在游戏结束后频繁重启游戏,因为每一次从后台关闭游戏,手机操作系统会强制回收该程序产生的所有垃圾内存。
    在3.4版本之前,我巅峰大概每两局重启一次游戏,如果游戏中出现冰箱了,就必须结束后马上重启


    IP属地:重庆来自iPhone客户端2楼2020-09-24 00:04
    回复
      而在3.4版本更新后,内存泄漏的现象更严重了,具体表现为:巅峰中,我重启游戏后的第一把,遇见大冰箱,游戏结算时闪退,连续出现了两次。3.4增加了新的战斗数据计算,而这些新增的计算,引入了新的垃圾


      IP属地:重庆来自iPhone客户端4楼2020-09-24 00:07
      回复
        最后,内存泄漏是一个很复杂的问题,简单来说,这与程序员的水平有着非常大的关系希望KY能重视一下,不想只觉得实现了功能就可以了,不然以后掉线的频率只会越来越高


        IP属地:重庆来自iPhone客户端6楼2020-09-24 00:12
        回复