flutter:内存溢出问题定位

事故背景

迭代需求有了短视频,要求有:

  1. 可以上下滑动;
  2. 支持多种视频格式;
  3. 视频播放不卡顿,有预加载,内存控制在一定水平;

在需求会之前,搜了下方案,发现了这个: flutter_tiktok大喜,遂直接clone到本地研读,运行了一下demo。感觉还不错哦,事情的进展是不是太顺利了。

不出意外的话,就出意外了,因为某些性能上的问题,不能继续下去。

研究了下当前可用的播放器,从原生角度来讲,只有video player和ijkplayer两种,要考虑格式支持、内存控制,这两种播放器都不能达到上线的标准,最后使用了付费的播放器

闪退之内存溢出

用对了播放器,需求进展的很顺利,直到,iOS突然崩了,日志显示内存溢出了。

事故分析

每次闪退,都发生在刷视频的过程,从操作角度来看,一定是播放器的问题了。进到播放器,内存突然增加,持续刷视频,持续增加。

持续增长的内存,居高不下,直到闪退。

找闪退的证据

从表面现象查代码,眼睛都看花了,也没看出个所以然来,必须找证据了。

打开Flutter DevTools

观察内存的变化

看GC前后class的instances变化

发现Image数量特别高,一直在增加,于是将视频封面处理掉,在看内存状态,处于一个动态平衡状态。

修改代码后验证

图片问题处理后,内存处于动态平衡状态。

相关推荐
程序员老刘8 小时前
Android Studio Quail 4发布,看日志我以为谷歌放弃Flutter了
flutter·android studio·ai编程
Crazy_MT9 小时前
Flutter 本地大模型实战:做一个自然语言记账工具
flutter·llm·ai编程
嵩风抚15 小时前
一款HK银行APP的业务+技术
android·flutter·react native·html5
不羁的木木17 小时前
给鸿蒙 App 增加广播收发能力 —— flutter_broadcasts 的鸿蒙使用指南
flutter·harmonyos
不羁的木木17 小时前
给鸿蒙 App 增加打开外部网页能力 —— flutter_web_browser 的鸿蒙使用指南
前端·flutter·harmonyos
安好说AI19 小时前
Flutter 三方库 sound_mode 的鸿蒙化适配指南:免权限读取与受限写入的契约对齐
flutter·harmonyos·鸿蒙
●VON19 小时前
Flutter 鸿蒙 disk_space_2 1.0.13 使用实战:下载前检查磁盘空间
flutter·华为·harmonyos·鸿蒙
●VON1 天前
Flutter 鸿蒙插件适配实战:用 device_screen_brightness 2.0.0 控制并监听屏幕亮度
flutter·华为·harmonyos
风早爽太2 天前
Flutter 开发笔记:share_plus 分享插件
笔记·flutter
●VON2 天前
Flutter 鸿蒙插件适配实战:用 boot_time_plugin 1.0.0 读取启动时间与运行时长
flutter·华为·harmonyos