Creator2.0.7 ios版本内存泄露

从1.9升级到了creator 2.0.7,速度确实提升了很多,就是有个严重问题,内存有泄漏。
我们游戏里战斗中会创建大量的spine和龙骨对象,每次战斗结束都有部分内存没法释放,直到应用闪退。
在iphone6上特别明显,只能打一局战斗。

你好,是spine还是龙骨呢?还是两个都有使用呢?有没有demo,我这边测试一下。

两个都有啊。龙骨对象创建的比较多,demo我们游戏比较难分离出来,我xcode profile一下,persist对象不断增多,内存200多M,涨到400M,不太明显,但确实在持续增加。

是在release模式下么?

你断点看看,切场景的时候,SpineAnimation和CCArmatureDisplay的析构函数有没有调用

debug模式,我加个断点试试

SpineAnimation有调用到析构函数,CCArmatureDisplay析构函数没有进来

看看是不是dragonbones对象在哪里有缓存了,或者切场景的时候,手动调用一下gc接口,看看是不是因为垃圾回收没有触发的原因。

已经手动调用了gc接口,缓存也都清理了,确实没触发CCArmatureDisplay析构函数,有个现象,同样一场战斗打完切换场景,在1.9.3版本下,日志是;
2019-01-08T14:53:51.336Z - normal: Simulator: GC begin …, (Native -> JS map) count: 32233
2019-01-08T14:53:59.632Z - normal: Simulator: GC end …, (Native -> JS map) count: 1053

在2.0.7版本下,日志:
2019-01-08T15:27:33.832Z - normal: Simulator: GC begin …, (js->native map) size: 7189, all objects: 10087
2019-01-08T15:27:33.969Z - normal: Simulator: GC end …, (js->native map) size: 6864, all objects: 9704

gc成功的对象感觉少了很多

嗯,我安排时间测试一下。

还有个现象,现在游戏切换场景非常流畅,就是退出游戏非常卡,gc时间很久,感觉都累积在退出时清理了。gc操作是切换场景就会调用,但没效果。

或者你能不能整理一个简单的demo,这样方便分析原因在哪里,因为我这边调试时候,切场景是有调CCArmatureDisplay析构的。

我们也发现spine内存占用特别高,加了10个动画,涨了200多MB,正常应该几十,我们也在查原因

是web还是原生?

是原生平台

没错,我之前一直用1.8.2一直有大量的动画就没有问题,升级了2.07后在苹果6上就玩一会就内存崩溃了,实在是头疼,请问你这边解决了吗

同问,我们也是在ios平台,升级了2.0.7以后就出现了内存泄漏问题。内存一直增长直到崩溃。

同样的代码在2.0.5上就没有问题,内存非常稳定。

定时调用cc.sys.garbageCollecet 释放内存也不行。



最后会崩溃在这里。

用2.0.7不加载龙骨动画的话,内存也很稳定,应该也是这个龙哥动画的内存释放问题

我这边只是在iphone6上,因为大量使用了动画,导致内存爆了,频繁出现了闪退,然后我这边没间隔几秒中在大量使用动画的界面,手动调用了一下 GC ,虽然还有闪退,但是勉强能接受了,先这样处理着,毕竟只是苹果6有这种情况,应该是引擎的bug, 不知道你是部分手机还是很多手机

好像好多人升级后都遇到了,动画过多导致内存爆掉了,这个应该是引擎的bug 把,苹果6特别明显,这个问题能查一下吗

我这边在动画多的场景里,每间隔几秒中手动调用了 GC ,有明显的好转,但是时间长了还是有闪退现象,一直是内存崩溃,应该是内存有泄漏了