图片资源占用的内存什么时机被释放?
发布于 6 年前 作者 jbai 14599 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

在加载一张图片后, 内存会有不少的上涨,  在删除图片dom后,  过了挺久(大概将近10秒吧, 有时候更长) 内存才会有些许的回落, 但是回不到加载图片之前的内存了, 而且和加载图片之前的内存数值差距还挺大

代码片段里加载一张  大概 1.3M的大图片,  我的操作流程如下:

  1. 打开小程序后, 先等待小程序内存稳定下来,    这边基本是打开的时候显示内存是 300M 左右,  等一会, 内存会降到 250M到270M 左右, 可能不同手机不一样

  2. 点按钮显示图片,  这时候内存会暴涨,  几次测试下来,  上涨数值 基本在 30M到80M 不等, 有几次暴涨100M

  3. 显示个几秒后,  隐藏图片,  内存会延迟几秒开始下降,   但是会比初始数值偏高  20M到30M。

  4. 再次显示图片, 内存会有上涨, 但是不会太多  大概 20M左右

  5. 不关闭小程序, 直接息屏, 再打开手机,  内存会迅速掉落到和初始差不多的数值

测试机型: 小米8

有几个疑问

  1. 图片隐藏后, 内存在什么时机会回收?

  2. 是否有缓存, 导致回收不完全

  3. 每次查看新图片,  这样是否会导致内存不断的上涨,  直到内存爆掉?

  • 希望提供的能力
2 回复

如果你的 图片节点一直在 则会一直存在,如果不在可视区域内,会回收一部分,但没多大用。推荐 长列表用 动态 DOM 来展示。

你是在哪里看的内存?

回到顶部