perf工具使用


1 perf 安裝

  • 安裝perf工具包:

    sudo apt install linux-tools-common
    
  • 執行perf提示:

    WARNING: perf not found for kernel 5.4.0-89
    
    You may need to install the following packages for this specific kernel:
    linux-tools-5.4.0-89-generic
    linux-cloud-tools-5.4.0-89-generic
    
    You may also want to install one of the following packages to keep up to date:
    linux-tools-generic
    linux-cloud-tools-generic
    
  • 安裝perf依賴工具:linux-tools-xxx

    sudo apt install linux-tools-generic
    sudo apt install linux-tools-5.4.0-89-generic
    

注意:這里可以用dpkg -l package-name-pattern——列出所有與模式相匹配的軟件包。如果您不知道軟件包的全名,您可以使用“package-name-pattern”。
查看已安裝軟件包的命令https://www.cnblogs.com/wangkongming/p/4531341.html
也可以參考源碼編譯perf使用:https://www.cnblogs.com/codehello/articles/9229630.html
需要用到詞法分析器flex:https://www.jianshu.com/p/f519fec5bc46

2 perf使用

  • 針對運行中的進程PID,使用perf采樣函數的調用頻率(對於C/C++語言,為了能夠顯示完整的函數棧,需要在編譯時加入-g選項),如下所示
    perf record -F 99 -p 進程PID -g
    
  • 一段時間后,使用Ctrl+C結束抓取,會看到當前目錄下有一個data.perf文件,該文件是一個二進制信息的問題;
  • 將二進制信息轉換為ASCII格式的文件,方便可視化處理:
    perf script > out.perf
    

perf使用https://www.cnblogs.com/arnoldlu/p/6241297.html

3 查看分析

  • 火焰圖生成工具

    git clone --depth 1 https://github.com/brendangregg/FlameGraph.git
    
  • 處理數據格式

    cd FlameGraph
    ./stackcollapse-perf.pl out.perf > out.folded
    
  • 生成SVG格式矢量火焰圖

    cd FlameGraph
    ./flamegraph.pl out.folded > out.svg
    

gprof 性能分析工具

gprof(GNU profiler)是GNU binutils工具集中的一個工具,linux系統當中會自帶這個工具。它可以分析程序的性能,能給出函數調用時間、調用次數和調用關系,找出程序的瓶頸所在。在編譯和鏈接選項中都加入-pg之后,gcc會在每個函數中插入代碼片段,用於記錄函數間的調用關系和調用次數,並采集函數的調用時間。

atrace、strace、fstrace性能分析工具


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM