网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 验证安装结果
cmd,输入dot -version
后显示以下内容,表明安装成功。
dot - graphviz version 8.0.5 (20230430.1635)
libdir = "D:\Software\pprof\Graphviz\bin"
Activated plugin library: gvplugin_dot_layout.dll
Using layout: dot:dot_layout
Activated plugin library: gvplugin_core.dll
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
D:\Software\pprof\Graphviz\bin\config6
was successfully loaded.
render : cairo dot dot_json fig gdiplus json json0 map mp pic pov ps svg tk xdot xdot_json
layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
textlayout : textlayout
device : bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg json json0 metafile mp pdf pic plain plain-ext png pov ps ps2 svg tif tiff tk xdot xdot1.2 xdot1.4 xdot_json
loadimage : (lib) bmp eps gif jpe jpeg jpg png ps svg
4 使用
需要用到go tool pprof
命令来辅助查看以及图形化的方式来展示。
- 添加配置并启动程序
- 加入依赖库
"net/http"
\_ "net/http/pprof"
- 加入运行分析性能的代码
go func() {
log.Println(http.ListenAndServe("127.0.0.1:6060", nil))
}()
- 抓取程序运行分析结果
D:\Software\pprof>go tool pprof http://localhost:6060/debug/pprof/profile
Fetching profile over HTTP from http://localhost:6060/debug/pprof/profile
Saved profile in C:\Users\chenlc\pprof\pprof.___10go_build_dsms_admin_app_task_job.exe.samples.cpu.001.pb.gz
File: ___10go_build_dsms_admin_app_task_job.exe
Build ID: C:\Users\chenlc\AppData\Local\JetBrains\GoLand2023.1\tmp\GoLand\___10go_build_dsms_admin_app_task_job.exe2023-06-09 11:41:18.3871269 +0800 CST
Type: cpu
Time: Jun 9, 2023 at 11:41am (CST)
Duration: 30.11s, Total samples = 14.96s (49.69%)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof)
- 图形化显示性能分析结果
退出命令行,复制Saved profile
后面的文件名。这样就是在浏览器中打开了,默认是以 greph 的方法展示,首页和上面的图形一样。在VIEW
中可以切换到Flame Graph
。
go tool pprof -http localhost:3001 C:\Users\chenlc\pprof\pprof.___10go_build_dsms_admin_app_task_job.exe.samples.cpu.001.pb.gz
注意:颜色没有特殊含义,因为火焰图表示的是 CPU 的繁忙程度,所以一般选择暖色调。
跨度越大,占比资源(CPU/内存)越大。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
8159)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!