参考资料:https://bitjoy.net/2017/02/07/gperftools-tutorial/
https://cloud.tencent.com/developer/article/1433465

该工具有两种使用方法:

  • 不改变原有代码,在运行程序之前预置环境
  • 改变自己的程序代码,并在编译时链接对应的库

安装gperftools性能分析工具:

sudo apt-get install google-perftools graphviz

google-perftools: 就是该工具
graphviz:用于可视化性能分析结果,为了下面可以生成对应的svg文件来进行可视化查看分析

第一种无需改变代码

假设你已经编译好了你的代码,并生成了可执行文件main

  1. 给你自己的main文件设置环境
    	export LD_LIBRARY_PATH=.
    

    这里的路径填写你自己的lib路径


  1. 在执行你的main程序时,预设Gperftools需要链接的库
    	LD_PRELOAD=/usr/lib/libprofiler.so.0 CPUPROFILE=./main.prof ./main
    

    LD_PRELOAD填写你自己环境中的Gperftools的库的位置
    CPUPROFILE填写你要生成的分析报告的文件的名称及位置
    最后填写你要执行的main文件,如果你的main程序需要其他命令,直接跟在继续写在后面即可


  1. 程序运行结束之后
    可以在最后一行看到如下输出:
    	PROFILE: interrupts/evictions/bytes = 4680/1585/112344
    
  2. 最后,进行性能分析
    	google-pprof --web ./main ./main.prof
    

–web表示性能分析结果以网页的形式展示,后面依次跟可执行程序和上一步生成的*.prof文件。程序自动打开浏览器

第二种需要修改代码

  1. 在程序开始和结束位置分别插入一条语句

    	#include <gperftools/profiler.h>
    	....
    	int main(int argc, const char* argv[])
    	{
    		ProfilerStart("main_test.prof");
    		.....
    		ProfilerStop();
    	}
    
  2. 注意该方法需要引入对应的头文件,以及在编译代码时需要链接对应的库,具体什么库参考上面或者其他文档,

  3. 执行程序时就不需要上面链接步骤,直接按照你自己的程序步骤执行即可

  4. 程序执行完毕将会在程序当前目录生成main_test.prof文件,然后就和上述方法步骤相同

Q.E.D.


ALL WILL BE CLEAR