首页 > 其他 > 详细

Egret--龙骨动画导致的内存溢出

时间:2020-04-15 10:10:20      阅读:279      评论:0      收藏:0      [点我收藏+]

内存溢出: 在Egret中定义为 变量引用导致实例对象的引用计次不能清除

结果就是  内存随着时长递增

在这次我的实战项目中,使用了多个龙骨动画, 总数应该是3*20个

项目完成,实际测试时发现 内存占用从10M左右一直涨到150M左右,并且FPS也持续下降

使用chrome的内存测试工具

↓这是调试好之后的结果   调试之前 deleted始终为0 (表示实例对象引用并没有被回收)

技术分享图片

 

龙骨动画实例的内存清除:

官方文档:


public class EgretArmatureDisplay


dispose () 方法
public dispose( disposeProxy:boolean ):void 语言版本: all 运行时版本: Web,Runtime 释放代理和骨架。 (骨架会回收到对象池) 参数 disposeProxy:boolean —

实现:

vis.addDBEventListener(egret.Event.REMOVED_FROM_STAGE, () => {
    vis.dispose();
    this.visitors.splice(this.visitors.indexOf(vis), 1);
})

最后的结果很明显:

技术分享图片

 

Egret--龙骨动画导致的内存溢出

原文:https://www.cnblogs.com/webfs/p/12703294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!