企业网站建设进什么科目核算,网站的flash怎么做,免费代理加盟好项目,关键词堆砌的作弊网站#memory泄露主要分为java和native 2种#xff0c;本文主要介绍java#
测试每天从monkey中筛选出内存超标的app#xff0c;提单流转到我
首先#xff0c;辨别内存泄露类型#xff08;java#xff0c;还是native#xff09;
从采到的dumpsys_meminfo_pid看java heap…#memory泄露主要分为java和native 2种本文主要介绍java#
测试每天从monkey中筛选出内存超标的app提单流转到我
首先辨别内存泄露类型java还是native
从采到的dumpsys_meminfo_pid看java heapnative heap大小分布可判断出是java/native泄露 如果是java泄露会抓到hprof文件am dumpheap pid/pname data/local/tmp/test.hprof
其次分析Hprof
明显的activity/fragment leak销毁的activity/fragment对象的引用 注意有多个引用时要看全每个引用链都可能导致泄露这里是个大坑掉下去很多次大概率是一个rootcause不明显的leak
按ShallowSize从大到小顺序筛选出Allocation数量/NativeSize最大的对象通常是BitmapServiceViewHolderViewDialogHashmapStub一些特殊的对象本身就是GCRootStubServiceConnectionViewHolderDialog都是要重点检查的对象若Hprof的Native内存占用大主要是Bitmap对象native内存占用大再从Bitmap引用链可以反向推导出持有它的对象若无法辨别出区别可借助MatLeakSuspects分析出内存分布找到疑似的泄露对象选2份hprof文件在mat上可对出对象的增长若怀疑某个对象泄露了再回到profiler中搜到对象和refrence
Mat加载hprof要转换一下才生效转化的方法是
将.hprof文件拷贝到PC上的/ANDROID_SDK/tools目录下并输入命令hprof-conv xxx.hprof yyy.hprof其中xxx.hprof为原始文件yyy.hprof为转换过后的文件
据我的经验有现场或找到复现路径基本100%可找到泄漏源解决掉 最后接下来分析下项目中常见的泄露Case