开发程序过程中常常要分析程序内存占用情况,CPU使用情况等等。

golang自带这些分析工具

1. 收集数据

_ net/http/pprof

然后启动一个http服务

http.ListenAndServe("127.0.0.1:8080",nil)

Heap dump

go tool pprof http://localhost:6060/debug/pprof/heap

CPU dump

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

更多支持的分析可以在这里查看: https://golang.org/pkg/net/http/pprof/

2. 分析数据

收集完数据后,会得到一个文件,假设在

C:\Users\youruser\pprof\pprof.appname.samples.cpu.001.pb.gz

运行命令:

go tool pprof -http=:8080 C:\Users\youruser\pprof\pprof.appname.samples.cpu.001.pb.gz

然后打开浏览器访问http://localhost:8080查看火焰图