参考:【windows】Graphviz的下载安装,配置环境和简单实例
参考:9.1 Go 大杀器之性能剖析 PProf
参考:关于golang性能调试及pprof可视化
文章目录
1、Graphviz下载安装
Graphviz是用来查看图形化界面的性能结果分析的,如果不需要的话,可以直接跳过这一步
1、msi包下载
这边下载的是msi包,不是zip包。提供下载地址:Graphviz - Graph Visualization Software
2、安装
点开msi,按照步骤默认安装到我们自定义的盘符,安装之后目录是这样:
3、环境变量配置
这边是windows10的环境变量配置。要配置的属性是我们安装的bin的目录地址
4、验证安装成功
打开我们的window控制台,win+R弹出“运行”,输入cmd,打开控制台
输入dot -version
,如果安装成功会出现下面的版本号信息:
2、简单例子运行
1、书写我们的demo
注意这边一定要引入pprof包,_ "net/http/pprof"
表示引入但不在代码中使用
package main
import (
"log"
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
for {
log.Println("https://github.com/EDDYCJY")
}
}()
http.ListenAndServe("0.0.0.0:6060", nil)
}
2、启动代码
启动代码会发现我们的控制台一致在循环打印,正常在http监听客户端请求也是一个无限循环的操作
3、web查看
因为我们这边监听的是6060端口,所以我们在web页面可以尝试打开http://127.0.0.1:6060/debug/pprof/
4、终端交互
在控制台输入我们的命令go tool pprof http://localhost:6060/debug/pprof/profile?seconds=20
,这边是查看profile的属性,时间是20秒内,具体可修改,我们看一下效果(以goland作为交互终端):
说明:
- flat:给定函数上运行耗时
- flat%:同上的 CPU 运行耗时总比例
- sum%:给定函数累积使用 CPU 总比例
- cum:当前函数加上它之上的调用运行总耗时
- cum%:同上的 CPU 运行耗时总比例
其他命令可参考help
或者网上资料
5、可视界面
1、书写测试函数
package data
import "testing"
const url = "https://github.com/EDDYCJY"
func TestAdd(t *testing.T) {
s := Add(url)
if s == "" {
t.Errorf("Test.Add error!")
}
}
func BenchmarkAdd(b *testing.B) {
for i := 0; i < b.N; i++ {
Add(url)
}
}
2、运行测试函数
因为我们这边的测试函数是在data目录下面,所以我们先要进入到这个data目录下面才能进行运行,有点不智能啊
命令是:go test -bench . -cpuprofile cpu.out
,会生成一个cpu.out文件
3、查看可视化结果
然后我们需要进入pprof模式,在控制台输入go tool pprof cpu.out
,输入web,会弹出一个对话框,让你选择显示的程序
这边查看的结果大概是这样的: