启动下面「代码片段」提供的项目。
步骤如下:
- 微信小程序开发者工具打开UI线程的调试面板;
- 打开「Performance monitor」面板,观察JS heap size和DOM Nodes的数据;
- 切换到「模拟器」,点击「add line」,添加约1000条数据;
- 打开「Memory 」面板,点击「Collect garbage」按钮,手动触发内存回收,回到步骤2观察指标;
- 切换到「模拟器」,点击「clear line」,删除全部数据;
- 执行步骤4;
微信小程序自定义组件的内存指标如下所示:
初始化:
添加1000个:
全部删除:
如果不使用「微信自定义组件」,使用view和text标签的情况下,在「删除DOM」后,JS heap size和DOM Nodes的指标基本能回到「初始化」的状态;
通过perfdog和iphone真机模拟上述步骤,内存的数据指标和「开发者工具」基本一样。
一、使用微信自定义组件
初始化内存:64MB;
加载一千个节点后,静置1分钟后的内存:108MB;
删除全部节点后,静置5分钟的内存:89MB;
二、不使用微信自定义组件
初始化内存:64M;
加载一千个节点后,静置1分钟后的内存:90M;
删除全部节点后,静置5分钟的内存:65M;
导致虚拟列表占用的内存越来越多