一、pprof介绍
官方提供了2个pprof包:
runtime/pprof:用于普通代码性能分析
net/http/pprof:用于http服务器性能分析;对runtime/pprof进行了封装,并在http端口上暴露出来。
二、使用
2.1 代码
运行:go run test.go
package main
import (
"fmt"
"net/http"
_ "net/http/pprof"
"time"
)
func run() {
http.ListenAndServe(":8000", nil)
return
}
func main() {
go run()
go func() {
for {
fmt.Println("running...")
time.Sleep(10 * time.Millisecond)
}
}()
select {}
}
2.2 通过web页面分析
http://127.0.0.1:8000/debug/pprof/
2.3 通过交互终端分析
go tool pprof http://localhost:8000/debug/pprof/profile\?seconds\=60
top10
go tool pprof http://localhost:8000/debug/pprof/heap
top