Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题

原文链接:https://blog.csdn.net/u013928720/article/details/53887744

最近在centos机器上安装perf对代码做性能测试。百度了一通,使用yum install perf* 这个命令就可以了,结果能正常运行、得到性能测试的报告,但是看不到代码
里面的函数名,这怎么分析啊?
  于是走上了一条百度路,一路排除命令没有问题,编译的时候加了-g,最后选择下载linux内核源码(下载地址:https://www.kernel.org/pub/linux/kernel),自己根据自己机器的内核版本下载相应的源码把),cd 到tools/perf 下,然后make。我没有仔细看make的输出信息(结果这是个坑),但是最终生成了一个perf的运行程序。以为万事大吉,继续进行性能测试。啊哈,跑了一遍,还是那个样子,当时我很沮丧。本着就是不信这个邪的原理,有重新下了一个版本的linux源码,重编一下,发现有报WARN,叫我yum 安装一些包,抱着试一试,按照WARN说的,逐一yum 相应的包,结果就好了。
  特此记录一下,反正我在网上没有找到我这种答案。其次,yum install perf*,在按照一些博客说的方法下一些包,也没有解决我的问题。
  反正问题解决了。happy。

Linux 下性能分析工具:perf
地址:http://www.cnblogs.com/happyliu/p/6142929.html
http://sanwen.net/a/nzsrvoo.html

perf record -e cpu-clock -g -p 2548
-g 选项是告诉perf record额外记录函数的调用关系
-e cpu-clock 指perf record监控的指标为cpu周期
-p 指定需要record的进程pid

Flame Graph项目位于GitHub上:https://github.com/brendangregg/FlameGraph 获取相关辅助工具

1、第一步
$sudo perf record -e cpu-clock -g -p 28591
Ctrl+c结束执行后,在当前目录下会生成采样数据perf.data.
2、第二步
用perf script工具对perf.data进行解析
perf script -i perf.data &> perf.unfold
3、第三步
将perf.unfold中的符号进行折叠:
#./stackcollapse-perf.pl perf.unfold &> perf.folded
4、最后生成svg图:
./flamegraph.pl perf.folded > perf.svg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值