Golang 火焰图
Golang 火焰图和性能优化
golang中有pprof包来做代码的性能监控,可以生成代码的调用堆栈和cpu的使用时间
接下来我们看一下pprof的使用过程
环境安装
下载graphviz:https://graphviz.gitlab.io/_pages/Download/Download_windows.html
windows下下载msi格式,安装成功后,进入命令行查看是否安装成功
命令: dot -version (记住graphviz需要设置到windows的path下)
如何使用
在程序中加入如下代码:
import "net/http"
import _ "net/http/pprof"
func main() {// 主函数中添加http.ListenAndServe("0.0.0.0:9999", nil)
}
执行如下命令:
go tool pprof -http=:1234 http://localhost:9999/debug/pprof/profile
过30秒中后会出现如下界面,选择 Flame Graph
如何看图
每个框代表一个栈里的一个函数
Y轴代表栈深度(栈桢数)。最顶端的框显示正在运行的函数,这之下的框都是调用者。在下面的函数是上面函数的父函数
X轴代表采样总量。从左到右并不代表时间变化,从左到右也不具备顺序性
框的宽度代表占用CPU总时间。宽的框代表的函数可能比窄的运行慢,或者被调用了更多次数。框的颜色深浅也没有任何意义
如果是多线程同时采样,采样总数会超过总时间
Golang 火焰图相关推荐
- 安装golang 火焰图
服务器配置属于小白级别 安装个火焰图费了一天半的时间,配置路径的问题[扎心到不行的说] 总结一下安装过程和遇到的问题 安装: 1. 安装go-torch[遇到各种问题,心塞] go get githu ...
- Golang FlameGraph(火焰图)
为什么80%的码农都做不了架构师?>>> 简介 初学golang(一个月多),之前主要用其他语言,如有问题欢迎指出. 安装 go get github.com/uber/go- ...
- Golang pprof 性能分析与火焰图
文章目录 1. 安装graphviz 1.1 下载 graphviz (windows 环境) 1.2 测试graphviz是否安装成功 2. 使用pprof 2.1 修改代码 2.2 火焰图生成 3 ...
- 记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使用
转自:https://mp.weixin.qq.com/s/9IKaXeWTiiQTFlvZzxgsEA 记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使 ...
- Go代码调优利器-火焰图
转自: https://lihaoquan.me/2017/1/1/Profiling-and-Optimizing-Go-using-go-torch.html Go代码调优利器-火焰图 go 调优 ...
- 使用火焰图(FlameGraph)分析程序性能
火焰图概念 火焰图(FlameGraph)是 svg 格式的矢量图,是先通过 perf 等工具分析得到结果,并将该结果生成的具有不同层次且支持互动的图片,看起来就像是火焰,这也是它的名字的由来.表现形 ...
- Linux下用火焰图进行性能分析
1 火焰图简介 很多人感冒发烧的时候, 往往会模仿神农氏尝百草的路子: 先尝尝抗病毒的药, 再试试抗细菌的药, 甭管家里有什么药挨个试, 什么中药西药, 瞎猫总会碰上死耗子, 如此做法自然是不可取的, ...
- Go pprof和火焰图
Profiling 在计算机性能调试领域里,profiling 就是对应用的画像,这里画像就是应用使用 CPU 和内存的情况.也就是说应用使用了多少 CPU 资源?都是哪些部分在使用?每个函数使用的比 ...
- 在CentOS 6.6 x86_64上安装SystemTap/Perf+FlameGraph玩转火焰图实录
下面是我结合网上资料摸索出的可行的操作方法,记录在这样,以备后面继续研究.操作系统是CentOS 6.6 x86_64. 1.将内核版本升级到最新版 因为我机器上CentOS 6.6的内核版本号是2. ...
最新文章
- [转]wxODBC(wxWidgets)中使用驱动程序方式打开数据库
- python数字的鲁棒输入_请教关于python的手写数字识别神经网络问题~~~~
- nodejs--http模块
- 中国在两年内赶超美国AI?李开复:不一定
- 对现代C++的一点看法
- jqGrid Events
- 如何设计一条稳定的应用交付流程?|云效工程师指北
- HTML5 飞鸽传书web service都发布到交互服务器
- 【建议收藏】找不到免费的角色动画?来试试mixamo
- python中的for in 语句_2、python,for..in语句
- 20200329:K 个一组翻转链表(leetcode25)
- Nginx的内部(进程)模型
- plsql创建、测试存储过程
- Excel鼠标所在行列填充颜色
- oracle 定时 analyze,Oracle工具:Analyze
- php快照劫持代码,php快照劫持跳转代码,php快照劫持源码下载
- 学习笔记(十)在网页中添加矢量图形
- 新手前端程序员就职指南之 - 入职第一天
- 常见的dataframe选取行列方式
- Flask表单提交的方法