-
依赖程序
- Perf 执行 perf 看系统有没有安装,没有则执行 yum install perf 安装 Perf;
- FlameGraph 在 https://github.com/brendangregg/FlameGraph 下载 FlameGraph-master.zip,并解压到你的目录 /YOUR_PATH
-
使用perf运行你的程序 your_program
- 在你的可执行程序目录下执行 perf record --call-graph dwarf ./your_program your_program_paras (--call-graph dwarf 可以记录完整函数调用栈,具体讨论可以参见 https://www.dazhuanlan.com/2020/02/27/5e57cc3612a61/ 也可以按照需要增加其他 perf 参数)
-
运行一段时间后 Ctrl+c结束(运行时间适当把握,保证程序初始化完成,需要测量性能的功能已经正常运行一段时间,但也不能运行太久,否则生成数据过大处理比较费时)
-
生成火焰图
- perf script >> your_program.perf
- /YOUR_PATH/FlameGraph-master/stackcollapse-perf.pl your_program.perf > your_program.folded
- /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/
及其他网络文章