如何设置Golang的Pprof进行内存火焰图,并安装配置Graphviz?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1087个文字,预计阅读时间需要5分钟。
要简化并改写上述内容,可以按照以下方式:
实操建议:
立即学习“go语言免费学习笔记(深入)”;
- 在
main()开头加runtime.GC(),避免启动时残留对象干扰首次采样 - 用
http.ListenAndServe(":6060", nil)启动后,确保已导入_ "net/http/pprof"(下划线导入触发 init 注册) - 不要只依赖
go tool pprof http://localhost:6060/debug/pprof/heap—— 这只是快照,火焰图需要持续采样,应改用go tool pprof http://localhost:6060/debug/pprof/heap?seconds=30
生成火焰图前必须安装 Graphviz 且 dot 命令要能被 pprof 找到
go tool pprof 本身不绘图,它调用系统 dot(Graphviz 的命令行工具)把 profile 数据转成 SVG。没装 Graphviz、PATH 里没有 dot、或版本太老(generating report 或报错 failed to execute dot。
本文共计1087个文字,预计阅读时间需要5分钟。
要简化并改写上述内容,可以按照以下方式:
实操建议:
立即学习“go语言免费学习笔记(深入)”;
- 在
main()开头加runtime.GC(),避免启动时残留对象干扰首次采样 - 用
http.ListenAndServe(":6060", nil)启动后,确保已导入_ "net/http/pprof"(下划线导入触发 init 注册) - 不要只依赖
go tool pprof http://localhost:6060/debug/pprof/heap—— 这只是快照,火焰图需要持续采样,应改用go tool pprof http://localhost:6060/debug/pprof/heap?seconds=30
生成火焰图前必须安装 Graphviz 且 dot 命令要能被 pprof 找到
go tool pprof 本身不绘图,它调用系统 dot(Graphviz 的命令行工具)把 profile 数据转成 SVG。没装 Graphviz、PATH 里没有 dot、或版本太老(generating report 或报错 failed to execute dot。

