android simpleperf工具介绍
simpleperf介绍
Simpleperf是Android平台的一个native层性能分析工具。它的命令行界面支持与linux-tools perf大致相同的选项,但是它还支持许多Android特有的改进。
simpleperf原理
CPU具有一个硬件组件,称为性能监控单元(PMU)。PMU具有一些硬件计数器,计数一些诸如 经历了多少次CPU周期,执行了多少条指令,或发生了多少次缓存未命中 等的事件。
Linux内核将这些硬件计数器包装到硬件perf事件 (hardware perf events)中。此外,Linux内核还提供了独立于硬件的软件事件和跟踪点事件。Linux内核通过 perf_event_open 系统调用将这些都暴露给了用户空间,这正是simpleperf所使用的机制。
简单说,simpleperf的工作原理就是根据的设置的频率进行采样,在CPU上(每个核上都有)产生一个中断,中断到来时记录当前CPU正在运行哪个进程的哪个函数。最终的结果是一个统计量,记录的是一段时间内某个函数被击中的次数百分比,百分比越大说明这段时间这个函数占用的cpu资源越多。
simpleperf功能
使用simpleperf list 命令列出当前所有可用的事件
simpleperf使用
simpleperf的使用分为两步:
1. 记录事件
2. 生产分析报告
使用方式也分为两种:
1. 命令行方式
2. python脚本方式
pythony脚本与simpleperf工具存在于android的ndk中,且相同目录,可以通过locate来定位本地的simpleperf所在目录。
~/bin/android-ndk-r20/simpleperf
reference:
simpleperf record --help
simpleperf report --help
https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md
https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/android_application_profiling.md
举例:
命令行方式记录事件
simpleperf record -p 829 -o /data/local/tmp/perf.data -e cpu-cycles:u -f 1000 --duration 10 --call-graph dwarf --post-unwind or
simpleperf record --app com.android.settings -o /data/local/tmp/perf.data -e cpu-cycles:u -f 1000 --duration 10 --call-graph dwarf --post-unwind
命令行方式生产分析报告
simpleperf report -i /data/local/tmp/perf.data --children -g caller > /data/local/tmp/perfdata
pythony脚本记录事件
python app_profiler.py -p mediacenter
python app_profiler.py --pid xxx
pythony脚本生产分析报告
python report.py or
python report_html.py
参考
Linux perf Examples
CPU Flame Graphs
https://hotttao.github.io/2020/01/04/linux_perf/04_perf/
android simpleperf工具介绍相关推荐
- android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...
本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1 Android Studio配置 2.1.1 ...
- Android开发工具介绍
AndroidSDK:Android standard develop kits 安卓开发的工具集 目前主流的安卓开发工具: 1.Adnroid-Adt-bundle SDKManager.exe: ...
- Android Studio CPU profiler性能分析工具介绍和使用详解
Android Studio CPU profiler性能分析工具介绍和使用详解 CPU profiler介绍 Android Studio CPU 性能剖析器可实时检查应用的 CPU 使用率和线程活 ...
- Android系统性能调优工具介绍
经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优工具介绍 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是: 测评 ...
- 几个常见的Android多渠道打包工具介绍
Android项目开发完,多途径打包是必不可少的环节.其原理在于,通过在Android安卓包中增加不同的标识,区别各个途径下载来源,用于计算App在不同使用市场或途径合作中的各项数据. 工欲善其事,必 ...
- Android逆向工具简单介绍
目录 一.Android逆向概述 1.什么是Android逆向 2.逆向过程 3.逆向用途 1)APP自动化执行程序脚本 2)修改APP的功能 3)APP安全 二.常用逆向工具介绍 1.APP抓包工具 ...
- Android手机自动化测试工具介绍
1. Monkey Runner 1.1 什么是Monkey Runner? Monkey Runner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和 ...
- android 测试工具,Android开源项目第四篇:开发及测试工具篇
本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...
- qpython3调用adb_Python实现的基于ADB的Android远程工具
Python实现的基于ADB的Android远程工具,本工具为原创,涉及知识: - Python编程 - Tkinter GUI编程 - ADB通信机制 代码全文: #!/usr/bin/env py ...
最新文章
- !aspxpages(即!dumphttpcontext)命令输出的解释
- [CoolStuff]有趣的Zumobi
- Pinging ? with 32 bytes of data 故障解决
- iOS UIButton 图片文字上下垂直布局 解决方案
- 跨网段实现内网互通_【供暖站组网】冠航SD-LAN助力河北石家庄市30个供暖站异地组网实现内网互联互通...
- deepin终端配置为英文
- python散点图显示数据_Python数据可视化——散点图
- 浅谈嵌套命名实体识别(Nested NER)
- js控制 html.textboxfor,javascript - Html.TextBoxFor regex is not working - Stack Overflow
- android 动态生成fragment,Android动态加载fragment(fragment复用)
- java项目log4j_java项目测试log4j
- activemq java 重发_java – 无法让ActiveMQ重新发送我的消息
- 程序员1年经验包装成5年,转正时领导:试用期不想过了?
- 大数据时代,新起的数据有哪几种模型
- es搜索准实时的理解
- 使用 matlab 数字图像处理(十)—— 维纳滤波复原
- 【转】Sql递归查询
- 哈哈哈,这个勒索软件笑死我了!太菜了~
- linux识别罗兰声卡,罗兰UA22 USB音频接口声卡调试介绍篇
- Windows任务栏图标变白解决方案