解决内存泄漏导致的系统崩溃问题

问题描述:某机器煲机爱奇艺视频2、3h后,会出现爱奇艺崩溃,或者退出视频播放界面,或者提示爱奇艺已停止运行。
同类现象还有系统静置4—5h,会出现闪屏现象,屏幕亮灭亮灭显示。

问题Debug

  • 客户提供的Log中出问题时刷“app died, no saved state”,应该是爱奇艺被kill掉后,导致的崩溃现象。在这里插入图片描述
    长时间静置闪屏,也是同样刷同样的打印
    在这里插入图片描述
  • 基于上面Log,在播放爱奇艺时 free -m,显示只有10M多内存,所以第一时间想到内存不够,优化内存,由于长时间煲机导致运行内存不够爱奇艺挥霍的,所以导致崩溃,沿着内存优化的路子试了很多,奈何该型号机器实在无法优化太多,只能改MMAP将一些不常用的模块内存看到系统限定最小值,煲机爱奇艺仍然NG
  • 后面用测试脚本实时监测内存使用情况
echo "===================polling watch========================"
while [ 1 ]; do
  echo "===================meminfo========================"
  echo "LMK: minfree:"
  cat /sys/module/lowmemorykiller/parameters/minfree
  echo "LMK: adj:"
  cat /sys/module/lowmemorykiller/parameters/adj
  procrank
  busybox free
  cat /proc/meminfo
  echo "mali memory_usage:"
  cat /sys/kernel/debug/mali/memory_usage
  echo "ump memory_usage:"
  cat /sys/kernel/debug/ump/memory_usage
  sleep 5
done
  • 运行脚本事实监控内存变化发现xxxServer 进程 在煲机时段中持续增加,从最开始的十几M到后面疯长到快300M,而且最开始煲机过程中未出现lowmemorykiller,一段时间后才狂刷lowmemorykiller,所以导致爱奇艺崩溃和画面狂闪的根本原因应该是xxxServer 进程 内存泄漏导致后面运行内存严重不够导致的问题
    在这里插入图片描述
    问题解决:定位到xxxxServer持续变大后,仔细查Code发现是自己在这个线程中使用完dictionary后没有free导致的,so低级的错误啊,查了老半天
    在这里插入图片描述
    PS:查看进程内存使用情况 procrank
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值