perf Linux 性能分析工具

系统级性能分析工具perf的介绍与使用 - ArnoldLu - 博客园

上面的文章非常全面,质量很高。基本上够用。

perf top 看函数排名

perf top可以实时查看当前系统进程函数占用率情况;

可以看出进程内哪个函数消耗资源比较多。htop就不能告诉你是哪个函数。

第一列:符号引发的性能事件的比例,指占用的cpu周期比例。

第二列:符号所在的DSO(Dynamic Shared Object),可以是应用程序、内核、动态链接库、模块。

第三列:DSO的类型。[.]表示此符号属于用户态的ELF文件,包括可执行文件与动态链接库;[k]表述此符号属于内核或模块。

第四列:符号名。有些符号不能解析为函数名,只能用地址表示。

pref record记录

pref record记录信息到perf.data;

执行这个命令的时候,只需要输入:pref record 回车即可。

程序会自动运行,并直接在当前目录实时写入一个叫perf.data的文件。Ctrl+C退出该程序的时候,会提示你perf.data已经生成,并有多大。

-e record指定PMU事件
    --filter  event事件过滤器
-a  录取所有CPU的事件
-p  录取指定pid进程的事件
-o  指定录取保存数据的文件名
-g  使能函数调用图功能
-C 录取指定CPU的事件

 

上面使用了 -a -g 参数执行当前目录下的my_exe程序。程序my_exe会正常执行,并正常输出内容到控制台。perf会在后台执行,并在当前目录下生成perf.data文件。

 

perf report 

查看记录报告perf report

在perf.data所在的文件夹输出命令perf report就可以看perf.data中的内容。和perf top看到的内容格式一样。

perf bench

perf bench mem:内存存取性能。包含memcpy和memset两个功能。

perf bench mem all 同时测试memcpy 和memset两个函数的性能。

这个函数就是运行一次测试程序,比如用memcpy拷贝1MB数据,看看花了多少时间。如果这时候有其他程序在运行,并且也用了memcpy,加上进程,线程调度。这个测试程序执行的时间会变长,得到的性能就会低。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C++程序员Carea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值