主要有两个包:
- net/http/pprof
- runtime/pprof
net/http/pprof只是对runtime/pprof包进行封装并用http暴露出来
分析web服务
常规使用方式,在入口文件main.go导入包
- "net/http/pprof"
如果使用了gin框架,则需要导入包:
import (
"github.com/DeanThompson/ginpprof"
)
ginpprof.Wrap(router)
router.Run(addr)
相关分析方法
// 分析cpu使用情况
go tool pprof [binary] http://localhost:8081/debug/pprof/profile
// 分析内存使用情况
go tool pprof [binary] http://localhost:8081/debug/pprof/heap
火焰图
go tool pprof -http=":8081" [binary] [profile]
其中,profile是指前者生成的pprof profile 文件
例如:
go tool pprof -http=":8081" user pprof.alloc_objects.alloc_space.inuse_objects.inuse_space.001.pb.gz