IOS 内存占用过高

  • Creator 版本: 3.6.2

  • 目标平台: ios iphone8 15.6.1

项目设置了 macro.CLEANUP_IMAGE_CACHE = true 和 dynamicAtlasManager.enabled = false 但是内存占用相比于安卓高出了很多,看样子是图片占用了双份 ,有咩有彭于晏帮忙分析一下是什么原因导致的

我们项目也遇到这个问题了,ios和安卓内存占用差异很大

如果是双份内存就是 ImageAsset 和 Texture2D 资源,你至少得先做下定位,看下问题资源是什么时候做释放?释放后资源是否残留在资源管理器里面,根据资源的 uuid 看下 assetManager.assets 里面的资源是否还在,如果还在一般是项目资源管理问题。如果觉得自己资源管理是 OK 的,麻烦提供个测试工程,不然没有可以排查资料,没法帮助你。

我也对这个问题有疑问,我看了源码,3.x,ImageAsset是cpu内存,Texture2D是gpu内存,是这么理解吗?

demo.rar (4.0 MB)


理论上所有图加起来将近 13M ,但是看内存增加了差不多 30M,麻烦看看是哪里的问题,如果是用的有问题,劳烦指点

我们的项目xcode profile里内存是正常的,但是xcode memory use里显示的要大两倍以上,这个是什么原因导致的?

我们也遇到了同样的问题,不知道xcode里面多出的那部分是什么,能不能开发者控制

我们项目中的动态合图是关闭的,我们也做到了每一个资源只创建一次,不使用时依次调用destroy释放spriteframe,texture2d,imageAsset,但是内存依然不见降低,我们也尝试了主动垃圾回收,但效果微乎其微

2.4.11 macpro 13.01. 构建不了项目。 这是个什么情况。 发送邮件了,但是一直没有得到回复。这个怎么解决,

你提供的 demo 里没有清除干净,loadremote 需要手动 destroy

我们的资源管理保证一张图片只会创建一份spriteframe,texture2d,imageAsset,根据我们打出的安卓包来看,内存并没有问题,因为我们项目是从egret转过来的,对这块的资源管理不是特别熟悉,又或者是android和ios有什么区别,怕是我们自己的问题,所以这段时间我们又尝试了资源不用的时候调用 spriteframe.destroy() texture2d.destroy() imageAsset.destroy() 但是在ios上反馈的结果来看内存并没有降下来,下面图是我们创建(getSpriteFrame)和释放(releaseSpriteFrame)的核心内容,请过目!

IOS的内存问题 ,官方能不能给个解决方案呀,根本就释放不了,要么就是释放不干净