Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
2016-12-26 17:16
1316 查看
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
最近在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
b35a
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
PS:建议下载内核源码,通过内核源码编译perf (地址:https://www.kernel.org/pub/linux/kernel),对tools/perf
进行make,有需要下载的组件,就下载
也可以考虑使用valgrind的性能分析,地址:http://www.cnblogs.com/zengkefu/p/5642991.html
但是感觉使用效果不怎么样
相关文章推荐
- Linux C 程序性能测试 valgrind callgrind分析函数耗时、perf分析函数CPU消耗
- maven编译ycsb0.1.4支持针对hbase性能测试,解决not a host:port pair问题,附下载地址
- 关于find_busiest_group函数提现出的Linux性能问题
- 性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具
- 性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具1
- linux perf - 性能测试和优化工具
- linux下查找字符串&mysql-为magento性能测试修改innodb的innodb_buffer_pool_size而引发的问题
- 性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具2
- 用 CPI 火焰图分析 Linux 性能问题
- 2017-02问题记录总结:linux下网络收发包性能测试代码、.bin和.elf文件格式区别
- Java值传递和地址传递:关于String类型和集合类型作为函数参数时传值问题的测试
- 性能测试过程中前端某图片显示异常问题及解决思路
- Linux下用JMap对Java程序进行性能测试检查内存泄露问题
- Linux下用JMap对Java程序进行性能测试检查内存泄露问题
- 反驳"MySQL InnoDB (不行)的性能问题",千万级别记录来测试说明
- 字符测试函数全集 Linux C
- Linux C 函数参考之字符测试篇
- 性能测试中的概念问题[转]
- 基于linux的Web服务器性能测试
- Linux 技巧: Bash 测试和比较函数