用pprof排查golang服务性能问题

假如你发现服务 cpu / 内存占用率过高，或是请求响应慢，你想知道是哪段代码出了问题，pprof 就是用来帮你干这个的。

首先要提前引入 pprof 库，很简单，就在服务端代码的基础上多加几行代码

Copy
import (
"net/http"
_ "net/http/pprof"
)

func main() {
go func() {
http.ListenAndServe("localhost:8080", nil)
}()
// 主进程
}

点击下图里的 profile，会采集 30s 的数据保存到 profile 文件里

之后运行

Copy
go tool pprof -http :8081 ./profile

打开http://localhost:8081/ui/