[LayaAir 2.0]开关页面导致内存一直增长

优化资源的时候遇到一个内存增长的问题,ui面板通过“加载资源,实例化,放入ui管理器”的流程进行管理,实例化一次就会一直存在,至于打开和关闭是从舞台移除添加来实现的,最近发现如果不处理资源释放的问题内存会越滚越大,所以我在ui从舞台移除的时候进行了清理,大多数的放用的方法是”
Laya.Loader.clearTextureRes(url);
 
比如这个页面的关闭
 Close(): void {
        IconManager.Instance().clearTexture(this.leftverticaldrawing.skin);//清理某个动态贴图的资源(clearRes方法清理png)
        IconManager.Instance().clearTexture(this.rightverticaldrawing.skin);
        ResMgr.ins.clearTextureImg(WindowNpc.ResList);//clearTextureRes方法清理atlas
    }
这个页面的资源
 static ResList: Array<Object> = [
        { url: "npc.json", type: Laya.Loader.JSON },
        { url: "packatlas/uiatlasnew/talk.atlas", type: Laya.Loader.ATLAS }
    ];
通过直接加载数组的形式
 
 “通过这种方式清理资源发现每次“打开关闭”一个面板之后gpuM会比之前增长2M左右,反复的“打开关闭”会越来越大
74L)3BF}73`Z6H{L`6FG7D.png
已邀请:

Laya_XS

赞同来自:

你这个问题还需要提交一个必现问题的demo case。我们每次发版本的时候都有内存泄漏的case测试都没有出现你描述的问题。辛苦提交下你的demo,我们确认下。

AlanDeng

赞同来自:

清理资源之前检查一下是否还有引用没有被销毁掉,如果资源还有被引用并且资源对应的实例化对象被销毁了,下次会重新下载资源,而旧资源会一直保留在内存里

要回复问题请先

商务合作
商务合作