收藏
回答

微信小程序「自定义组件」在UI线程上存在内存泄漏

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 8.0.50 3.5.4

启动下面「代码片段」提供的项目。

步骤如下:

  1. 微信小程序开发者工具打开UI线程的调试面板;
  2. 打开「Performance monitor」面板,观察JS heap size和DOM Nodes的数据;
  3. 切换到「模拟器」,点击「add line」,添加约1000条数据;
  4. 打开「Memory 」面板,点击「Collect garbage」按钮,手动触发内存回收,回到步骤2观察指标;
  5. 切换到「模拟器」,点击「clear line」,删除全部数据;
  6. 执行步骤4;

微信小程序自定义组件的内存指标如下所示:

初始化:

添加1000个:

全部删除:


如果不使用「微信自定义组件」,使用view和text标签的情况下,在「删除DOM」后,JS heap size和DOM Nodes的指标基本能回到「初始化」的状态;


通过perfdog和iphone真机模拟上述步骤,内存的数据指标和「开发者工具」基本一样。

一、使用微信自定义组件

初始化内存:64MB;

加载一千个节点后,静置1分钟后的内存:108MB;

删除全部节点后,静置5分钟的内存:89MB;

二、不使用微信自定义组件

初始化内存:64M;

加载一千个节点后,静置1分钟后的内存:90M;

删除全部节点后,静置5分钟的内存:65M;

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

1 个回答

  • 吃苹果
    吃苹果
    08-26

    导致虚拟列表占用的内存越来越多

    08-26
    有用
    回复
登录 后发表内容