性能请教

引擎v3.5.2
原生App运行一个多小时,内存达到800M左右
动态加载的资源都手动释放了

请问同一个子包bundle需不需要每次都释放再加载
释放的话该如何释放

releaseAllimage

打开prefab 关闭时调用了this.node.destory 内存未得到释放

自己release。…上面已经给你贴出来了,你不用什么就放什么。

如果是别的bundle的资源,还得考虑自动合图,如果bundle1的资源,开启了自动合图,然后释放了bundle1的资源,这样被合掉的图并没有被释放掉,下次重新进入的时候,又自动合图一次,这样两份图都没得到释放。

使用 cc.DynamicAtlasManager.instance.deleteAtlasSpriteFrame 或者 cc.DynamicAtlasManager.instance.deleteAtlasTexture,我的 MK框架 已经处理了 :laughing:,有需要可以使用,而且是自动管理资源释放。不需要用户担心太多

1赞

内存优化注意几点:
1、首先需要拆分每个功能的内存大小占用,要明细;
2、是否有功能存在内存泄漏,必须要改掉;
3、app内存峰值如果是800M,绝大部分低端机可以玩,不会出现崩溃问题;
4、是否需要释放,取决于打开界面的频率来,常用的模块就不用释放啦,做好缓存策略。
5、如何释放,前面有大佬已给出,不多赘述。

1赞

可以单独拿你的这个功能来使用吗 初步发现是 Label的问题Bitmap模式下 重复打开关闭N次后
GFX Texture Mem会增加10~20M

应该是动态合图的问题

你可以抄 release 函数里的代码,其他代码都和框架代码耦合

dynamicAtlasManager.reset()可以用的吧