Perf+火焰图进行性能瓶颈分析

  • 依赖程序

  1. Perf    执行 perf 看系统有没有安装,没有则执行 yum install perf 安装 Perf;
  2. FlameGraph    https://github.com/brendangregg/FlameGraph 下载 FlameGraph-master.zip,并解压到你的目录 /YOUR_PATH

 

  • 使用perf运行你的程序 your_program

  1. 在你的可执行程序目录下执行    perf record --call-graph dwarf ./your_program your_program_paras  (--call-graph dwarf 可以记录完整函数调用栈,具体讨论可以参见 https://www.dazhuanlan.com/2020/02/27/5e57cc3612a61/ 也可以按照需要增加其他 perf 参数)
  2. 运行一段时间后 Ctrl+c结束(运行时间适当把握,保证程序初始化完成,需要测量性能的功能已经正常运行一段时间,但也不能运行太久,否则生成数据过大处理比较费时)

 

  • 生成火焰图

  1. perf script >> your_program.perf
  2. /YOUR_PATH/FlameGraph-master/stackcollapse-perf.pl your_program.perf > your_program.folded
  3. /YOUR_PATH/FlameGraph-master/flamegraph.pl your_program.folded > your_program.svg

 

  • 使用浏览器打开 your_program.svg 查看各函数运行时间占比,分析查找瓶颈

火焰图

 

  • 参考

关于 Perf 的更多用法可以参考

https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/

https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/

及其他网络文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值