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性能分析工具

posted @ 2022-03-23 19:26  lihaihui199102  阅读(769)  评论(0编辑  收藏  举报