golang使用pprof查看程序运行信息

安装graphviz

https://graphviz.gitlab.io/_pages/Download/Download_windows.html
安装完毕后,搜索gvedit,右键属性,查看bin目录所在位置

将bin目录添加到环境变量

添加golang代码

import (
_ "net/http/pprof"
)

func main(){
    go func() {
        log.Println(http.ListenAndServe("localhost:8000", nil))
    }()
}

查看debug信息

通过浏览器 http://127.0.0.1:8000/debug/pprof/ 查看堆栈和routine等信息
也可以通过命令行调试,新开shell,输入
go tool pprof http://127.0.0.1:8000/debug/pprof/profile
等待采样,然后再输入
web
此时可通过浏览器查看graphviz生成的svg图片。

golang使用pprof查看程序运行信息_第1张图片
image.png

go内置数据结构

golang内置数据结构

  • string (2 words)
  • slice (3 words)
  • interface (2 words)
  • map (1 word)
  • chan (1 word)
  • func (1 word)
    详细:
    https://docs.google.com/presentation/d/1lL7Wlh9GBtTSieqHGJ5AUd1XVYR48UPhEloVem-79mA/view#slide=id.gc5ec805d9_0_535

其他参考

pprof参数解释:
https://jvns.ca/blog/2017/09/24/profiling-go-with-pprof/
https://github.com/EDDYCJY/blog/blob/master/golang/2018-09-15-Golang%20%E5%A4%A7%E6%9D%80%E5%99%A8%E4%B9%8B%E6%80%A7%E8%83%BD%E5%89%96%E6%9E%90%20PProf.md
也可通过panic查看调用栈信息,具体参考此文:
https://www.ardanlabs.com/blog/2015/01/stack-traces-in-go.html

你可能感兴趣的:(golang使用pprof查看程序运行信息)