请教ccc原生性能优化方向

准备用creator开发一款原生端手游产品,写个demo发现性能比web要差了不少,请教下大家原生端主要方向是什么:sob:。目前使用版本2.3.3

,目前对重复使用的弹道和特效用了nodepool,在web上性能OK,

优化了两天,性能稍微好点了把,还有一定的优化空间。不过时间越久还是会越掉帧。暴力测试,同屏几百只怪+上百发弹道大概40帧+


最近自己实现nodePool,不remove节点,而是改用控制active(没有改透明度,因为节点上有些有组件,还是会update),然后改了个逻辑上的小BUG,能稳定60帧了

少用active,不要使用官方的nodepool,自己实现一套,用透明度试试

先测试,所有碰撞逻辑关掉,看渲染性能。
渲染如果没问题,那么问题应该是碰撞计算。
要确定优化方向得先看哪一块消耗比较大。

源生的性能差在计算性能,因为js在和源生互译时也存在性能消耗,这个无法避免的
drawcall只有6应该不是渲染的问题,而是有太多的计算,看gamelogic达到了74ms,问题应该在这

上次你可信誓旦旦的说,原生效果不错
推荐1.9.x测一下,有惊喜,iOS

现在优化的差不多了:grinning:

计算的确是大头,碰撞检测加入了四叉树,自己重新实现一套轻量的Vec2和Rect来计算。并且在逻辑层面的event也自己封装了套相对轻量的。性能大概提升了百分之100把,但是时间久了还是会越来越卡,应该是cc.instantiate的锅

现在可以来试着实现nodepool了,发现跑久了,怪物数量和弹道数量都趋于稳定了之后,碰撞检测等计算量肯定是稳定的,但是帧数确会持续往下掉,只能试试这方面的优化了。在pc上面分析不出来是哪方面的问题了,每帧消耗时间6ms,渲染2,logic4

是不是有 setInterval 定时器?

没有,定时器是自己封装的全局Timer

越玩越卡,就要看是不是哪里内存泄漏了,可以用内存工具看看是不是所用内存越来越大

查过,没有内存泄漏

之前项目遇到过定时器调用频繁,动画多就会卡.
把定时器 在组件上 update(dt) 进行回调就好了