proof分析
pprof引入方法
pprof引入代码有两种方式:
1、一种是项目中导入runtime/pprof,主要用来产生dump文件,然后再使用 Go Tool PProf 来分析这运行日志,此种方式在普通的单机程序未使用http网络服务上使用。
2、另一种方式是项目中导入net/http/pprof,net/http/pprof是对runtime/pprof的封装,如果当前程序已启用http服务,使用此种方式非常方便,以做到直接在web上看到当前 web 服务的状态,包括 CPU 占用情况和内存使用情况等
只需要在main 入口导入包 _ "net/http/pprof"
/debug/pprof/profile:访问这个链接会自动进行 cpu profiling,持续 30s,并生成一个文件供下载
/debug/pprof/block:goroutine阻塞事件的记录。默认每发生一次阻塞事件时取样一次
/debug/pprof/goroutines:活跃goroutine的信息的记录。仅在获取时取样一次。
/debug/pprof/heap: 堆内存分配情况的记录。默认每分配512k字节时取样一次。
/debug/pprof/mutex: 查看争用互斥锁的持有者。
/debug/pprof/threadcreate: 系统线程创建情况的记录。 仅在获取时取样一次
方式一:go tool pprof http://ip:port/url(debug/pprof/profile)等,使用命令行方式查看。
方式二:直接访问http://ip:port/url(debug/pprof/profile)等