Go:性能分析工具 - pprof

参考:【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,会弹出一个对话框,让你选择显示的程序
在这里插入图片描述

       这边查看的结果大概是这样的:

在这里插入图片描述

发布了117 篇原创文章 · 获赞 15 · 访问量 5612

猜你喜欢

转载自blog.csdn.net/qq_34326321/article/details/104892106