GoLang之go如何查看正在执行的goroutine数量
注:本文基于Windos系统上Go SDK v.1.8进行操作
1.pprof介绍
pprof 包含两部分:
编译到程序中的 runtime/pprof 包
性能剖析工具 go tool pprof
2.安装graphviz
1.创建文件夹
2.如下下载
3.双击所下载的exe文件,进行如下选择
4.安装成功,输入dot -version,回车:
5.重启电脑
3.程序中引入pprof package
在程序中引入pprof package:
import _ “net/http/pprof”
程序中开启HTTP监听服务:
package main
import (
"net/http"
_ "net/http/pprof"
)
func main() {
for i := 0; i < 100; i++ {
go func() {
select {}
}()
}
go func() {
http.ListenAndServe("localhost:6060", nil)
}()
select {}
}
4.分析goroutine文件
在命令行下执行以下命令,下载goroutine文件并进行分析:
go tool pprof -http=:1248 http://127.0.0.1:6060/debug/pprof/goroutine
浏览器自动打开以下网站,在图中可以清晰的看到goroutine的数量以及调用关系,可以看到有103个goroutine