众所周知,为了获得正在运行的Golang程序的profile信息,需要增加如下代码到main函数中
import _ "net/http/pprof"
func main(){
go func(){
log.Error(http.ListenAndServe(":6060",nil))
}
}
以上代码会新起一个gorutine,用来获取golang程序的profile信息。
打开浏览器输入 http://localhost:6060/debug/pprof
会出现
/debug/pprof/
profiles:
0 block
135 goroutine
798 heap
0 mutex
35 threadcreate
其中第二项就是goroutine的数量,这个值一旦很大就预示着这个程序很大可能goroutine泄露。