-
依賴程序
- 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/
及其他網絡文章