1. 线程创建分析工具
该工具使用native hook的方式,直接hook了pthread_create调用,并记录每一个线程创建时的堆栈,并打印日志。同时维护一个running thread的集合,必要时 dump下来所有running thread的创建堆栈,用于分析野蛮线程创建的场景。以及对应的日志分析工具。
2. Linux /proc/<pid>/smaps 文件分析脚本
主要用于跟踪进程的 Code 部分内存(见下文)占用,分析出占用内存较多的dex,so文件。排查第三方SDK占用过多内存场景。网上只能找到一个perl脚本,功能不是很强大,鉴于笔者不熟悉perl的语法规范,改起来会比较困难,因此直接用python重写了一个。
3. 快速Dump Android java heap脚本
因为分析内存需要很多dump操作,所以干脆写了个Bash脚本。
(顺便提一下,android提供的 hprof-conv 工具有个参数 -z 用于排除zygote的内存,十分便利。)
更多山东IT培训相关资讯,请扫描下方二维码