golang开发如何安装go-torch火焰图
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,小编给大家分享一下golang开发如何安装go-torch火焰图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!安装1、 安装go-torchgo get github.com/ube
千家信息网最后更新 2025年02月23日golang开发如何安装go-torch火焰图" + "
小编给大家分享一下golang开发如何安装go-torch火焰图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
安装
1、 安装go-torch
go get github.com/uber/go-torch
2、安装FlameGraph
cd $GOPATH && git clone https://github.com/brendangregg/FlameGraph.git
export PATH=$PATH:$GOPATH/FlameGraph
【这步一定要设置,生成火焰图时会用到】
3、安装graphviz (CentOS, Redhat)
yum install graphviz
在程序的包含mian函数的文件中添加相应代码
使用
package mainimport ( "net/http" "net/http/pprof" ) func main() { // 主函数中添加go func(){ http.HandleFunc("/debug/pprof/block", pprof.Index) http.HandleFunc("/debug/pprof/goroutine", pprof.Index) http.HandleFunc("/debug/pprof/heap", pprof.Index) http.ListenAndServe("0.0.0.0:8888", nil) //注意此处,遇到错误 }() //你的代码 }
然后压测的时候,在go 的bin目录下找到go-torch,去运行,会把缓存的数据输出到文件中
./go-torch -u http://localhost:8080/debug/pprof/ -p > profile-local.svg ./go-torch -u http://localhost:8080/debug/pprof/heap -p > heap-local.svg
另一种自定义显示方式
代码修改
import "net/http"import _ "net/http/pprof"func main() { // 主函数中添加 go func() { http.HandleFunc("/program/html", htmlHandler) // 用来查看自定义的内容 log.Println(http.ListenAndServe("0.0.0.0:8080", nil)) }()}
使用
# 用 -u 分析CPU使用情况./go-torch -u http://127.0.0.1:8080# 用 -alloc_space 来分析内存的临时分配情况./go-torch -alloc_space http://127.0.0.1:8080/debug/pprof/heap --colors=mem# 用 -inuse_space 来分析程序常驻内存的占用情况;./go-torch -inuse_space http://127.0.0.1:8080/debug/pprof/heap --colors=mem# 画出内存分配图go tool pprof -alloc_space -cum -svg http://127.0.0.1:8080/debug/pprof/heap > heap.svg
查看
使用浏览器查看svg文件,程序运行中,可以登录 http://127.0.0.1:10086/debug/pprof/ 查看程序实时状态 在此基础上,可以通过配置handle
来实现自定义的内容查看,可以添加Html格式的输出,优化显示效果
func writeBuf(buffer *bytes.Buffer, format string, a ...interface{}) { (*buffer).WriteString(fmt.Sprintf(format, a...))}func htmlHandler(w http.ResponseWriter, req *http.Request) { io.WriteString(w, statusHtml())}// 访问 localhost:8080/program/html 可以看到一个表格,一秒钟刷新一次func statusHtml() string { var buf bytes.Buffer buf.WriteString("" + "netflow-decoder status count
" + "
NAME | TOTAL | SPEED |
---|---|---|
UDP | %d | %d |
Count time: %s
Time now: %s
", countTime.Format("2006-01-02 15:04:05"), time.Now().Format("2006-01-02 15:04:05")) buf.WriteString("") return buf.String()}看完了这篇文章,相信你对"golang开发如何安装go-torch火焰图"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
程序
火焰
代码
内存
函数
情况
文件
分析
开发
内容
篇文章
分配
输出
运行
可以通过
基础
完了
实时
效果
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
高校网络安全实训室
海德联创网络技术有限公司
蒂森mc2服务器多少钱
斗破苍穹手游私服没有服务器列表
清道夫保护网络安全
我的世界服务器获得管理权限
服务器硬件结构图
达梦数据库网络架构
顺丰数据库产品经理
区块链数据库腾讯
产品信息数据库管理办法
服务器 安全模式
数据库db是什么意思
山西统一软件开发服务以客为尊
工商银行软件开发的要求
媒体服务器耗电超级严重怎么解
中美科技互联网公司对比
吉林定制软件开发
博兴陶瓷软件开发服务
技术软件开发增值税免税依据
北京地产互联网科技招聘
数据库的三个分支
顺丰数据库产品经理
ftp文件服务器管理平台
本地文件数据库
网吧服务器和其他客机连接
sql+从数据库删除表
光合微度软件开发怎么样
网络安全通信协议 答案
河北app开发软件开发