收藏
回答

小程序canvas逻辑存在内存泄漏的问题?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug canvas 微信iOS客户端 大量版本 n.0.0

问题描述

鲸营宝小程序在ios系统,切换数据看板有闪退情况

安卓设备暂无此类问题;ios机型,切换看板的速度影响小程序闪退;

初步判断是内存占用过高导致微信客户端闪退(部分机型会弹出内存告警的弹窗)。

 

目前正在尝试的解决办法

优化看板数据请求方式、优化数据页状态管理姿势(合并数据setState引起的多次重渲染)、优化看板的渲染逻辑(合并多次渲染、手动取消数据变化没变化部分的渲染),优化canvas的渲染逻辑,减少canvas的绘制动作、和内存的消耗。


分析

  1. 经过大量优化操作(优化请求更新状态、优化状态管理、优化kbone-canvas的绘制逻辑、合并状态更新、对比数据在必要时更新canvas等),减少canvas的绘制次数后,ios闪退的概率大大下降
  2. 小程序社区中也有 原生开发+echarts、f2 发生闪退的情况

https://developers.weixin.qq.com/community/develop/doc/0006c23c14471095fd1ac32bc5b400?highLine=canvas%2520%25E9%2597%25AA%25E9%2580%2580

https://developers.weixin.qq.com/community/develop/doc/000e6ea89289f0528f99552f556400?highLine=canvas%2520%25E9%2597%25AA%25E9%2580%2580

https://developers.weixin.qq.com/community/develop/doc/000a6c0d9fc8008f572a0a08f51c00?highLine=canvas%2520%25E9%2597%25AA%25E9%2580%2580

https://developers.weixin.qq.com/community/develop/doc/000c60f9c38e50c93d7a6ed695b000?highLine=canvas%2520%25E9%2597%25AA%25E9%2580%2580

等等

 

综上,得出大概率是因为ios小程序原生canvas有内存泄露的逻辑,并不是F2、echarts的问题,在优化逻辑减少canvas绘制次数后 闪退复现次数大大下降 也可佐证此结论


回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    06-24

    你好,麻烦具体描述下载小程序里的问题复现流程,提供出现问题的具体机型、微信版本号、系统版本号,麻烦再重现一次,在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供一下微信号,复现问题的详细时间点(如:2020-4-10 10:10)

    06-24
    有用
    回复 2
  • 匿旅
    匿旅
    07-23

    +1

    ios: 12.4.1

    微信版本: 7.0.14

    使用了 wx-f2 库,changeData() 之后微信直接闪退,多次测试后打开微信有一个提示上传日志之类的得点下一步下一步才能进微信。


    07-23
    有用
    回复
  • 星辰大海
    星辰大海
    07-02

    也遇到了类似的问题,内存溢出

    07-02
    有用
    回复
登录 后发表内容
问题标签