参考:【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
_ "net/http/pprof"
package mainimport ("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查看
http://127.0.0.1:6060/debug/pprof/
4、终端交互
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=20
说明:
- flat:给定函数上运行耗时
- flat%:同上的 CPU 运行耗时总比例
- sum%:给定函数累积使用 CPU 总比例
- cum:当前函数加上它之上的调用运行总耗时
- cum%:同上的 CPU 运行耗时总比例
help
5、可视界面
1、书写测试函数
package dataimport "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
3、查看可视化结果
go tool pprof cpu.out
这边查看的结果大概是这样的: