Linux代码性能分析工具

一、gperftools

1、gperftools安装

docker下需要安装gperftools、ghostscript、graphviz

gperftools:

# 从github下载gperftools源码并解压
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.tar.gz
tar -xvf gperftools-2.9.1.tar.gz
 cd gperftools-2.9.1
# 编译
./configure
make -j8
# 安装到系统文件夹
sudo make install

ghostscript:

sudo apt install ghostscript

#或者编译安装
地址: 
https://ghostscript.com/releases/gsdnld.html 或
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/

tar -zxvf ghostscript-9.55.0.tar.gz(根据自己下载版本来定)
cd ghostscript-9.55.0
./configure --prefix=/usr/local/ghostscript
mkdir obj
mkdir bin
make all
make install
make so
2.配置环境变量
vi /etc/profile
写入 export PATH=$PATH:/usr/local/ghostscript/bin
3.查看是否安装成功
gs -v

2、性能分析

gperftools有text和pdf两种输出方式。具体分析如下:

通过cmake进行修改编译。在链接的时候增加对profiler库的链接

target_link_libraries(${PROJECT_NAME}
        profiler
        xxxxx
)

在代码中添加头文件和ProfilerStart()、ProfilerStop()

Linux代码性能分析工具_第1张图片

 txtLinux代码性能分析工具_第2张图片

 pdf

 

Linux代码性能分析工具_第3张图片

 

二、perf

1、perf安装

 

# 下载linux-tools-common
sudo apt-get install linux-tools-common
#查看是否存在perf
perf --version
#如果不存在,可以下载特定的内核版本下的tools,根据命令行的提示,我的命令是, 这个命令需要下载特定内核版本的工具, 命令 uname -r 查看内核版本
sudo apt-get install linux-tools-5.4.0-122-generic
#再检查一下
perf --version
perf version 5.4.192

安装过程中可能会出现一下报错 

WARNING: perf not found for kernel 4.15.0-39

  You may need to install the following packages for this specific kernel:
    linux-tools-4.15.0-39-generic
    linux-cloud-tools-4.15.0-39-generic

  You may also want to install one of the following packages to keep up to date:
    linux-tools-generic
    linux-cloud-tools-generic

首先,根据提示安装相关package即可

如果无法找到相关package,可通过下面方法解决

 

#其实perf已经内置在linux-tools-generic里面,所以安装后创建perf软链接即可
sudo apt install linux-tools-generic
sudo ln -s ln -s /usr/lib/linux-tools/4.15.0-162-generic/perf /usr/bin/perf

#其中4.15.0-162-generic字段酌情替换

 

2、编译代码

根据自己的代码酌情编译即可

3、perf分析


#具体指令可百度 
#1、record生成perf.data文件 perf record -g demo 
#2、report分析相关perf.data文件 perf reprot -g

Linux代码性能分析工具_第4张图片 

3、其他分析工具

3.1 gprof

编译的时候使用-pg,通过使用一个gprof2dot.py输出一个与gperftools类似的pdf

Linux代码性能分析工具_第5张图片

 

3.2 火焰图

工具:git clone https://github.com/brendangregg/FlameGraph.git,操作方式与gperftools类似。

Linux代码性能分析工具_第6张图片

 

 

你可能感兴趣的:(linux,git,ubuntu)