【性能】【工具】simpleperf使用

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值