尔东 【重现步骤】:场景上两个按钮,按钮代码如下:一开始GPUMemory为3.53M,点击按钮1后GPUMemory变为17.59M,点击按钮2后GPUMemory不变化,再次点击按钮1GPUMemory变为31.65M,再次点击按钮2后GPUMemory不变化,如此重复操作,GPUMemory会不停的往上增。【问题如下】:问题1:clearRes释放资源之后,Laya.loader.load重新加载同一个资源为什么GPUMemory会不停的增加?问题2:Laya.loader.clearRes之后,GPUMemory为什么不降低,如果clearRes不会释放内存,那这个接口的作用是什么?【Demo】如下:附件:resTest.zip resTest.zip0B
尔东 Aar0n 请不要轻易锁定帖子可以吗,我们的需求是自己使用计数引用自己管理资源释放,而不是使用destroyUnusedResources一股脑儿一次性释放没有使用的资源。这种情况下clearRes不能使用该使用什么接口?另外clearRes既然没有清除内存,为什么getRes又取不到内存,导致下一次使用又要去load?
尔东 Aar0n 测试了一下,使用(Laya.Loader.getRes(this.picUrl) as Laya.Resource).destroy();之后,GPUMemory还是没有降,重复点按钮之后,GPUMemory一直往上飙升。
尔东 Aar0n 如果确认一个资源暂时不需要了,我确保没有image引用到这个资源,在不使用destroyUnusedResources的情况下,我应该使用哪个接口怎么写代码能把GPUMemory降下来?
尔东 Aar0n 仔细看了clearRes的源代码,clearRes里面本身就有调用(Laya.Loader.getRes(this.picUrl) as Laya.Resource).destroy();,所以导致单纯destroy反而更加释放的不彻底。