很多时候,写代码是一件很爽的事情,但最后需要对APP进行瘦身、性能分析却是一件很棘手的事情。当需要对APP的性能进行分析时,Simpleperf
是一个简单快捷的选择。
Simpleperf 命令和选项参考
(https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md)
Simpleperf 用法
(https://developer.android.google.cn/ndk/guides/simpleperf?login=from_csdn&hl=zh-cn)
一、什么是Simpleperf
git clone https://android.googlesource.com/platform/prebuilts/simpleperf
二、Simpleperf的工作原理
给定用户选项,simpleperf通过对linux内核进行系统调用来启用分析;
Linux 内核在调度到被分析进程时启用计数器;
分析之后,simpleperf从内核读取计数器,并报告计数器摘要。
给定用户选项,simpleperf通过对linux内核进行系统调用来启用分析;
Simpleperf在simpleperf和linux内核之间创建映射缓冲区;
Linux内核在调度到被分析进程时启用计数器;
每次给定数量的事件发生时,linux内核将样本转储到映射缓冲区;
Simpleperf从映射缓冲区读取样本并生成perf.data。
三、Simpleperf的使用
文件准备
adb push 文件源地址 文件目的地址
性能分析
adb shell am start -n 包名/启动程序
adb shell pidof 包名
adb shell
cd simpleperf所在目录
./simpleperf stat [options] [command [command-args]]
./simpleperf record [options] [command [command-args]]
./simpleperf report [options]
./simpleperf stat -p 进程号 --duration 检测进程的持续时间(秒)
./simpleperf record -p 进程号 -o 输出文件(默认perf.data) --duration 监测进程的持续时间(秒)
echo 0>/proc/sys/kernel/kptr_restrict
./simpleperf report --dsos 选定动态共享对象(so库) -f 记录文件(默认perf.data) --sort 用于排序和打印报告的键 -n
注意点
四、实例
./simpleperf stat -p 5932 --duration 10
./simpleperf record -p 5932 -o dms.data --duration 10
./simpleperf report --dsos /data/app/.../lib....so --sort comm,pid,tid,symbol -n
./bin/linux/x86_64/simpleperf report --dsos /data/app/.../lib....so --sort comm,pid,tid,symbol
五、相关阅读
另一个Android性能剖析工具——simpleperf
Simpleperf介绍
文章来源:https://openatomworkshop.csdn.net/664ee1c2b12a9d168eb705cf.html
作者:Yngz_Miao
《Android Camera开发入门》、《Camx初认识》已经上架,可以点击了解 -> 小驰成长圈 |期待见证彼此的成长
觉得不错,点个赞呗