安装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图片。
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