3.8.2版本, 加载的资源释放后, 内存不降

resources.load(“textrue/magic_map_1/SpriteFrame”,SpriteFrame,(err,sf)=>{
sf.addRef()
setTimeout(() => {
sf.decRef()
}, 2000);
})

动态加载一张图片, 2秒后, 确保它的refCount = 0, 调用释放后
GFX Textrue Mem(M) 比如:加载之前 20M,加载之后 22M, 释放之后 20M,
但是, 我在xcode中, 观察内存, 比如:加载之前 20M,加载之后 22M, 释放之后 22M,,释放之后内存完全没有变化

释放texture试试

在SpriteFrame销毁的时候, 顺带着销毁了texture。
销毁之后我还再次在bundle内, get了一下资源, SpriteFrame 和 texture 都是返回的,null
理论上bundle内的cache已经移除了。 理论上都应该是销毁完毕了。

你先调texture的销毁,然后再调SpriteFrame 的销毁

xcode 的这个内存显示,包不包含GFX 纹理啊?如果是直接电脑运行的话,纹理这部分应该归于显存,和内存是独立开的。

没啥用, 依然没有降。。

不是很清楚,
但是我之前用的3.5.2和2.4.x的版本, 内存都是可以降下来的

decRef (true)

decRef函数, 默认传递的就是true。。

不好说,官方默认值都要试一试,避坑

刚刚我确认了下, 默认值传递没有啥问题。
如果没有销毁的话,从bundle内再次get就不会返回null了。

现在很明显的就是bundle内资源已经销毁了。
内存降不下来。

先看看内存中是不是还有这个资源

你gc下吧