一、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
三、参考资料
版权声明:本文为kanguolaikanguolaik原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。