cocos creator3.8 打包安卓,进入战斗,结束战斗内存不降低

memory-20240824T133700.zip (500.7 KB)

这个是点击进入战斗,到退出战斗的 native内存 快照 ,


很多都没有销毁

希望有大佬解答

你的意思是结束战斗后内存自动释放?
进入战斗和结束战斗是你游戏的逻辑啊,引擎怎么知道你结束了战斗以及哪些可以释放呢?
节点有调用destroy进行销毁吗?

已经对战斗中的所有节点进行的 destory

一开始我以为是计算出现的问题,但是经过android的内存快照中,看到的是大象的 new cc_Node 没有被销毁

战斗用到的资源是否release掉了

我尝试了资源释放,我将战斗所用到的贴图,音频进行释放,Graphics 所占用的内存下降了,但是native 与other占用的内存就是不降低

手动gc一下


根据快照中,没有销毁的是node,可是确实都进行了destory()

这个也尝试了,手动 GC可以减小java所占用的内存,但是native和other所占用的地方不会减小image

是不是有些node没有管理到啊,尝试打印下父节点的子节点个数看下呢,是不是隐藏或者透明度设为0看不到,并且没有销毁呢

战斗时候,主要创建的就是怪物和子弹,monsterLayer 和 bulletLayer 是他们各自的父节点

我是这样处理的

怎么创建的,你这看起来只是销毁了node 但是它依赖的资源没有释放,还有子弹和怪物搞个对象池存放比较合适点你这个看起来是一直往父节点上添加

我的子弹 和 怪物 都是在一张大图上的,我尝试将他释放了但是native所占用的内存还是没有减小,


只是 Graphics 所占用的内存下降了,但是native 与other占用的内存就是不降低

最后解决了嘛