收藏
回答

重新渲染地图导致小程序内存溢出,崩溃-黑屏白屏(wx:if,页面跳转方法可触发)

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug map 客户端 7.0.5 2.7.5

- 当前 Bug 的表现(可附上截图)

三星S6 edge,三星S10 来回切换含地图页(redirectTo),尝试多次后,小程序页面白屏或黑屏,一段时间后不会恢复,有可能导致小程序关闭。

小程序奔溃效果如图:


操作视频如下:0-30s为不含地图页的切换演示,内存不会溢出。30s-1分30s为含地图页的切换演示,多次之后,小程序崩溃。


- 预期表现

包含地图的页面,或地图,在重新渲染时,内存应该被有效回收。重新渲染的时机包括,切换页面(不管是redirect方法还是navigate方法)或wx:if控制的map组件。


- 复现路径

建议使用安卓手机操作(IOS性能监控,不可见内存)

使用wx:if方法控制地图显示或隐藏,内存在地图显示时显著升高,而用hidden方法显示或隐藏地图,不会有此表现。

通过性能窗口观察,发现内存在地图页切换时,升高并不会被销毁。其他普通页面不会有此情况。

推断:内存在地图重新渲染时,未有效回收,多次渲染地图,会造成内存溢出风险。


- 提供一个最简复现 Demo

https://developers.weixin.qq.com/s/V4jTDVmb789C


补充:华为荣耀10青春版复现问题,另外对内存监控数据的准确性表示怀疑。


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

6 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    07-17

    代码片段里是否也可以补充这里的相关代码:来回切换含地图页(redirectTo)

    07-17
    赞同
    回复 23
    • 非城
      非城
      07-17
      本来有多个页面的,但通过wx:if就能重现问题了,不需要多余页面展现问题
      07-17
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      07-17回复非城
      使用上面的代码片段在三星S6 edge,三星S10你那边也能复现崩溃,黑屏的问题?我这边测试华为未复现,所以再确认下
      07-17
      回复
    • 非城
      非城
      07-17回复社区技术运营专员-娇华
      没错,s6,s10均能复现。其实你可以查看内存的增长情况就知道了。你没有出现崩溃,有可能是没有达到一定的阈值。我这里内存增到1200M以上接下来就容易崩溃。楼下有说明。我接下来继续验证下华为手机。
      07-17
      回复
    • 非城
      非城
      07-17回复社区技术运营专员-娇华
      使用华为荣耀10青春版,已复现问题。
      07-17
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      07-17回复非城
      好,反馈收到,我们先看下
      07-17
      回复
    查看更多(18)
  • 。...
    。...
    12-02

    大佬,你是在onUnload函数里把map的高度设置为0? 这问题解决了吗?我用live-player组件遇了一样的问题,使用场景是淘宝直播卖货的那种,频繁进出live-player组件的播放页,内存蹭蹭涨

    12-02
    赞同
    回复
  • 十二
    十二
    09-18

    我最近也遇到啦,使用其他类似美团外卖的也会出现这个问题,导致小程序无法使用

    09-18
    赞同
    回复 4
    • 非城
      非城
      09-18
      嗯,最好在官方下留言,让官方关注这个问题。
      09-18
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      09-20回复非城

      安卓下个版本会修复,建议通过修改map宽高为0来规避

      09-20
      回复
    • 十二
      十二
      09-23回复社区技术运营专员-娇华
      现在的问题是几乎所有的小程序使用时切换页面后就会出现黑屏,导致小程序使用不了
      09-23
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      09-23回复十二
      这个单独发帖反馈下,提供下设备信息和代码片段
      09-23
      回复
  • 张胖子
    张胖子
    07-17

    我也遇到这个问题,求解,性能模版的内存一直在增加。大致到1100m以上有大概率出现黑屏现象。

    07-17
    赞同
    回复 1
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      09-20
      安卓下个版本会修复,建议通过修改map宽高为0来规避
      09-20
      回复
  • 大鲨鱼
    大鲨鱼
    07-17

    你是测试人员吗?

    07-17
    赞同
    回复 1
    • 非城
      非城
      07-17
      我是开发人员
      07-17
      回复
  • 非城
    非城
    07-17

    不知道是否和Map是原生组件有关,其他原生组件未作验证。

    07-17
    赞同
    回复 2
    • Silvan
      Silvan
      08-30
      camera一样有此问题
      08-30
      回复
    • 。...
      。...
      12-03回复Silvan
      频繁进出live-player组件的页面一样有这问题,我都磨了4天了,内存还是降不下来
      12-03
      回复