Closed zhangrunhao closed 5 years ago
也就是如何将new Hilo.Bitmap 中占有的内存, 或者queue.add()的资源释放掉
通过, queue.getConent() 获取到的img标签, 指向null, 能否销毁
直接 queue = null 就行
@06wj 如果不想把队列清空, 只是把队列中的某个元素清空呢?
可以先这样删 queue._source[i] = null
我今天加个接口。。queue.remove
@06wj 感谢. 两个问题:
@zhangrunhao 增加了 loadQueue.removeContent
只要删了js引用就释放内存了, queue removeContent是删掉queue里的引用
@06wj 如果是已经绘制到canvas上面的bitmap呢? 删了引用, 也会删掉内存吗?
@06wj 您好, 想和您询问下, 如果清理掉已经绘制到canvas上的图像..
现在使用的是removeFromeParent()方法, 并使new出来的view, 指向null, 无法成功释放缓存.
bitmap删掉引用就行
@06wj 好的, 非常感谢.
@06wj 您好, 现在已经确认, 可以删除loader加载过来的资源所占用的内存.
并可以释放 Bitmap中占用的内存.
当序列帧, Sprite中图片使用Image对象的内存, 可以释放, 但是一旦用Spite渲染到舞台上, 删除饮用后, 内存不会被释放.. 如果重复渲染序列帧, 每次删除引用的情况下, 内存还是会一直涨.
需要把 _frames 清空?
sprite = null....
@06wj 已经这样做了, 没有效果..
@06wj 您好, 作者大大, 上个游戏写的卡的原因, 已经找到了, 还是想和您分享这个事.
所有的image cache, 还有 js 内存都清空的情况下,, 内存依旧会涨的原因是, 有一个GPU 的缓存. GPU Program cache. 不太清楚自己理解的对不对. 就是浏览器需要把图片转换成给GPU识别的shader程序, GPU缓存了这个转换后的着色器程序.. 就造成了内存的不断增长.
也是因为自己项目中, 用了大量的大图的序列帧.
也不清楚自己理解的是否正确, 如果可以的话, 想听听您的意见和建议.
现在遇到问题是: 不断的操作, 会不断的 new 出新的舞台. 但依旧使用已经加载好的图片.
内存会剧增.
希望作者大大, 能够提供一个思路, 去除已经画出的图片