【点击观看视频】Go 如何查看正在执行的goroutine数量?
# 程序中引入pprof pakage
在程序中引入pprof package:
import _ "net/http/pprof"
1
程序中开启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 {}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 分析goroutine文件
在命令行下执行:
go tool pprof -http=:1248 http://127.0.0.1:6060/debug/pprof/goroutine
1
会自动打开浏览器页面如下图所示
在图中可以清晰的看到goroutine的数量以及调用关系,可以看到有103个goroutine