参考资料: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
- 给你自己的main文件设置环境
export LD_LIBRARY_PATH=.
这里的路径填写你自己的lib
路径
- 在执行你的main程序时,预设
Gperftools
需要链接的库
LD_PRELOAD=/usr/lib/libprofiler.so.0 CPUPROFILE=./main.prof ./main
LD_PRELOAD
填写你自己环境中的Gperftools
的库的位置
CPUPROFILE
填写你要生成的分析报告的文件的名称及位置
最后填写你要执行的main
文件,如果你的main
程序需要其他命令,直接跟在继续写在后面即可
- 程序运行结束之后
可以在最后一行看到如下输出:
PROFILE: interrupts/evictions/bytes = 4680/1585/112344
- 最后,进行性能分析
google-pprof --web ./main ./main.prof
–web表示性能分析结果以网页的形式展示,后面依次跟可执行程序
和上一步生成的*.prof文件。程序自动打开浏览器
第二种需要修改代码
- 在程序开始和结束位置分别插入一条语句
#include <gperftools/profiler.h>
...
int main(int argc, const char* argv[])
{
ProfilerStart("main_test.prof");
.....
ProfilerStop();
}
-
注意该方法需要引入对应的头文件,以及在编译代码时需要链接对应的库,具体什么库参考上面或者其他文档,
-
执行程序时就不需要上面链接步骤,直接按照你自己的程序步骤执行即可
-
程序执行完毕将会在程序当前目录生成
main_test.prof
文件,然后就和上述方法步骤相同
Q.E.D.