Android性能分析的几种方法

Android性能分析的几种方法

  1. 通过Memory Monitor 查找内存泄漏
    Android Profiler中的Memory Monitor可以实时查看app的内存占用情况。通过操作app界面,抓取某段时间的heap dump分析内存泄漏情况


    image

这个图是从主页反复进入选择APP页面过程抓取的heap dump信息,通过搜索SelectAppActivity发现存在多个实例,存在内存泄漏无疑,要查找具体泄漏的原因需要用到mat工具。
将刚才的heap dump导出文件,然后通过android 命令行工具hprof-conv转换为标准的heap dump,导入mat查看


image

然后通过path to GC Roots找到引用路径,发现是EventBus未注销引起的泄漏


image
image
  1. LeakCanary
    LeakCanary是square公司出的一个java/Android内存泄漏检测工具,具体使用见github:https://github.com/square/leakcanary

在apk运行过程中发生内存泄漏


image
  1. 使用Android Device Monitor中的TraceView分析性能
    TraceView有两种使用方法:
  • 方法级别:在代码中手动开启,统计某一函数的耗时,会在sdcard中输出trace文件,导入ddms即可查看
    Debug.startMethodTracing('tracepath') Debug.stopMethodTracing()
  • 时间段级别:通过ddms的Method Profiling或者Android Profile CPU中的method trace开启,用于统计一段时间内的函数耗时
image

比如分析list滚动性能,通过incl cpu time / call total 计算每个onBindingViewHolder耗时,来查看是否有阻塞操作


image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容