【性能】【工具】simpleperf使用

Simpleperf是Android的性能分析工具,利用Linux内核的perf_event_open系统调用进行性能监控。它支持stat、record和report功能,通过记录和报告样本来分析CPU事件。本文介绍了Simpleperf的工作原理,包括如何启用计数器和记录样本。同时,详细说明了simpleperf的使用步骤,包括数据抓取、perf.data文件的读取和转换,以及如何通过火焰图进行性能分析。
摘要由CSDN通过智能技术生成

1Simpleperf的工作原理

 

现代的CPU具有一个硬件组件,称为性能监控单元(PMU)。

PMU具有一些硬件计数器,计数一些诸如经历了多少次CPU周期,执行了多少条指令,或发生了多少次缓存未命中等的事件。

Linux内核将这些硬件计数器包装到硬件perf事件(hardware perf events)中。此外,Linux内核还提供了独立于硬件的软件事件和跟踪点事件。

Linux内核通过perf_event_open系统调用将这些都暴露给了用户空间。

这正是simpleperf所使用的机制。

代码路径:/system/extras/simpleperf/

脚本路径:/system/extras/simpleperf/scripts

手机设备的默认路径 :/system/bin/simpleperf

Simpleperf是谷歌将perf工具port到Android上的性能分析工具,它的命令行界面支持与linux-tools perf大致相同的选项,但是它还支持许多Android特有的改进。

具有三个主要的功能:stat,record 和 report。

Stat命令给出了在一个时间段内被分析的进程中发生了多少事件的摘要。以下是它的工作原理:

给定用户选项,simpleperf通过对linux内核进行系统调用来启用分析;

Linux 内核在调度到被分析进程时启用计数器;

分析之后,simpleperf从内核读取计数器,并报告计数器摘要。

Record命令在一段时间内记录剖析进程的样本。它的工作原理如下:

给定用户选项,simpleperf通过对linux内核进行系统调用来启用分析;

Simpleperf在simpleperf和linux内核之间创建映射缓冲区;

Linux内核在调度到被分析进程时启用计数器;

每次给定数量的事件发生时,linux内核将样本转储到映射缓冲区;

Simpleperf从映射缓冲区读取样本并生成perf.data。

Report命令读取perf.data文件及所有被剖析进程用到的共享库,并输出一份报告,展示时间消耗在了哪里。

2simpleperf

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值