pprof性能调优工具| 青训营笔记

88 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第6天

pprof简介

pprof 是 golang 官方提供的性能调优分析工具,可以对程序进行性能分析,并可视化数据,看起来相当的直观。
当你的 go 程序遇到性能瓶颈时,可以使用这个工具来进行调试并优化程序。

下载安装

  • 方式一:在cmd窗口中输入go get github.com/google/pprof下载依赖
  • 方式二:使用golang开发,在go.mod文件中加入pprof依赖,并在设置中选择启用fo模块继承这一选项,ide会自动帮你拉取依赖

准备

在使用pprof工具前,还需要下载Graphviz,并为其设置环境变量,设置好环境变量后,在安装目录下的bin目录,打开cmd窗口执行 dot -c 命令

案例代码:克隆 github.com/wolfogre/go… 到本地,保证能够编译运行。

浏览器查看指标

编译运行main.go文件,此时在浏览器输入:地址,可以看到以下界面,在此页面可以查看内存、CPU、堆等性能指标

image.png

可视化界面

在终端中输入go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/heap",回车运行后,会在浏览器打开一个堆的可视化界面,可以动态的观察程序运行情况 例如下图表示内存的使用情况

image.png

我们也可以在VIEW中切换至Flame Graph视图,火焰图中自顶向下展示了各个调用,表示各个函数之间的调用层级关系,图中条形越长代表消耗的资源越多,那些又平又长的节点表示资源占用较多。

image.png 火焰图是非常常用的性能分析工具,在程序逻辑复杂的环境下很有用!