spine ios 内存泄漏严重

用的CocosCreator2.4.11,貌似论坛遇到spine内存泄漏问题的很多,引擎组一直没给解决吗?

2.4.12 修复了!!自己去搜下,我前几天看到的.

哪里有2.4.12

去官方github issue 上去搜, 有个修复spine内存泄漏的

有没有引擎的人指点一下。

可以发下相关的issue链接吗?搜不到。。另外看了版本对比,怎么感觉都不是呢?
https://github.com/cocos/engine-native/compare/2.4.11...2.4.12
https://github.com/cocos/cocos-engine/compare/2.4.11...2.4.12
这两地方的对比。看起来都不是 :thinking:

我测试了一下,这应该不是内存泄漏,是js对象没有gc,还有native的一些缓存。

谢谢调查。
gc调用之后,内存还是不能够回复到之前的状态,上图1和3的差距。。还是你有点大的

期待引擎组重视2.x的用户。。。毕竟3.x现在2d的性能不如2.x啊。
或者有没有什么补丁方案。

请问一下,哪一条是?

有些是用的内存池,分配了是不会释放的。不能一次加载然后释放看内存消耗来判断是不是内存泄漏了。你反复加载释放spine(比如100次)看看是不是能稳定到一个内存值。

spine有可以不是用内存池的配置吗?
我们游戏spine用到的很多,频繁进出战斗,会有不同spine加载。内存一直暴涨。
手机浏览器就不用提了,基本只能一次战斗,第二次立马crash。

另外我试了CocosCreator3的Spine,内存会有释放。

频繁进行相同的战斗加载相同的spine都会内存一直暴涨吗?


会暴涨3,4倍,,最后释放以后,会回落到2倍的状态。。
图里面,每一个箭头,就是加载一个相同spine,,,最后,隔段时间会回落到和加载一次一样的内存状态。没有回落到没有加载spine时候的状态。

是不是使用spine缓存模式,缓存不会自动释放

试试这个pr是否可以解决你的问题:

谢谢,试了一下,没有变化。而且相同spine加载一次,内存涨一下。

怀疑你的资源释放逻辑有问题。资源A 加载了使用了一次,立即release掉。过了很短时间又加载A,assetManager里面找不到缓存就会再次加载。但是gc还没有释放A的内存。导致内存重复加载资源了。就消耗了2倍A资源的内存。最后系统gc执行后,内存恢复到第一次加载时的水平。这里的内存是开始的一倍是有各种内存池的消耗。内存占用是不可能完全回到开始状态的。
可以在场景切换或者战斗结束时再整体释放用到的spine资源。避免不停的加载-释放,加载-释放

确实是你说的这种情况。使用之后立即释放掉。。。。
正常不就应该这样吗 :joy:

问题是,在释放掉之后,调用gc,内存也只是有小部分回落。但是有溢出的部分。也就是说即使gc也没有释放掉A的内存。(不论是否立即调用gc还是推迟调用gc)