收藏
回答

图片资源占用的内存什么时机被释放?

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 需求 客户端 7.0.4 2.7.0

- 需求的场景描述(希望解决的问题)


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


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

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

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

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

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

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

测试机型: 小米8

有几个疑问

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

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

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



- 希望提供的能力


最后一次编辑于  05-25
回答关注问题邀请回答
收藏

2 个回答

  • 小程序技术专员-villainhr
    小程序技术专员-villainhr
    07-29

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

    07-29
    赞同
    回复 2
    • 摇了摇头
      摇了摇头
      07-30

      移除图片dom之后,  图片占用的资源会延迟一段时间才被释放. 而且释放不完全的样子,  不断新增图片然后删除图片,  内存会一直上升.  但是,  发现我一把手机息屏,  内存会有较大幅度的下降.

      所以不知道如何优化这个图片内存问题,  因为有时候图片确实比较大,  比较耗内存.

      07-30
      回复
    • 小程序技术专员-villainhr
      小程序技术专员-villainhr
      08-01

      换个手机试试?

      08-01
      回复
  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    05-28

    你是在哪里看的内存?

    05-28
    赞同
    回复 1
    • 摇了摇头
      摇了摇头
      05-28

      小程序的性能监控面板

      05-28
      回复