准备用creator开发一款原生端手游产品,写个demo发现性能比web要差了不少,请教下大家原生端主要方向是什么
。目前使用版本2.3.3
优化了两天,性能稍微好点了把,还有一定的优化空间。不过时间越久还是会越掉帧。暴力测试,同屏几百只怪+上百发弹道大概40帧+
最近自己实现nodePool,不remove节点,而是改用控制active(没有改透明度,因为节点上有些有组件,还是会update),然后改了个逻辑上的小BUG,能稳定60帧了
准备用creator开发一款原生端手游产品,写个demo发现性能比web要差了不少,请教下大家原生端主要方向是什么
。目前使用版本2.3.3
优化了两天,性能稍微好点了把,还有一定的优化空间。不过时间越久还是会越掉帧。暴力测试,同屏几百只怪+上百发弹道大概40帧+
最近自己实现nodePool,不remove节点,而是改用控制active(没有改透明度,因为节点上有些有组件,还是会update),然后改了个逻辑上的小BUG,能稳定60帧了
少用active,不要使用官方的nodepool,自己实现一套,用透明度试试
先测试,所有碰撞逻辑关掉,看渲染性能。
渲染如果没问题,那么问题应该是碰撞计算。
要确定优化方向得先看哪一块消耗比较大。
源生的性能差在计算性能,因为js在和源生互译时也存在性能消耗,这个无法避免的
drawcall只有6应该不是渲染的问题,而是有太多的计算,看gamelogic达到了74ms,问题应该在这
上次你可信誓旦旦的说,原生效果不错
推荐1.9.x测一下,有惊喜,iOS
现在优化的差不多了
计算的确是大头,碰撞检测加入了四叉树,自己重新实现一套轻量的Vec2和Rect来计算。并且在逻辑层面的event也自己封装了套相对轻量的。性能大概提升了百分之100把,但是时间久了还是会越来越卡,应该是cc.instantiate的锅
现在可以来试着实现nodepool了,发现跑久了,怪物数量和弹道数量都趋于稳定了之后,碰撞检测等计算量肯定是稳定的,但是帧数确会持续往下掉,只能试试这方面的优化了。在pc上面分析不出来是哪方面的问题了,每帧消耗时间6ms,渲染2,logic4
是不是有 setInterval 定时器?
没有,定时器是自己封装的全局Timer
越玩越卡,就要看是不是哪里内存泄漏了,可以用内存工具看看是不是所用内存越来越大
查过,没有内存泄漏
之前项目遇到过定时器调用频繁,动画多就会卡.
把定时器 在组件上 update(dt) 进行回调就好了