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、