内存抖动解决实战

241 篇文章 5 订阅

1、

2、

3、

4、

不同的工具有不同的使用场景。Memory Profiler使用非常直观,可用清晰地看到内存曲线。

5、

打开应用查看内存情况,此时此刻内存非常地平稳,y一直稳定在87.7M

 

进入到另一个页面后,可以看到界面呈锯齿状,可以初步判断出现了内存抖动,这种情况如果非常严重的话,也会导致卡顿,同时由于可用内存减少,可能导致OOM.此时,通过Memory Profiler发现了内存抖动的现象。怎么知道内存抖动真正发生在哪里呢?

6、如何判断内存抖动发生在哪里呢?

可以看到record这个按键,这个就是来记录内存的分配情况,点击后,等一会儿再点击stop

 

然后可以将内存分配情况显示出来,也就是说在刚刚那段时间内分配了如下这些对象

点击Allocations可以对对象数量进行排序。可以看到String数组有15720多个,在shallow size处可以看到占用的大小。

现在可以锁定一个目标,为什么string数组会有这么多?它可能会有问题。怎么排查是哪个地方导致的问题呢?

随便点击一个对象,可以在右下角看到对象的堆栈信息,也就是对象是在哪里进行分配的

 

点击右键,jump to source可以跳转到代码处

 

7、

8、

9、

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值