golang开发如何安装go-torch火焰图
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下golang开发如何安装go-torch火焰图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!安装1、 安装go-torchgo get github.com/ube
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网科技公司经营范围
科技平台互联网
汇久创客互联网科技
天下捷融互联网科技
上游互联网科技
长亮科技 互联网金融
大白互联网科技
阿里巴巴算科技企业还是互联网
互联网系的金融科技公司
受益于互联网科技的高速发展
岳阳华臻互联网科技有限公司
互联网科技产业特征
互联网科技大奖都有哪些公司
深圳艾果互联网通讯科技
2021互联网科技公司排名
雨阳互联网卡科技有限公司
广州梦谷互联网科技有限公司领导
中国新注册互联网科技
艺电能源互联网科技有限公司招聘
互联网大会出现的黑科技
礼当家互联网科技
亿人帮互联网科技
南山科技园互联网公司有哪些
互联网科技有哪些公司
来此购互联网科技有限公司
互联网科技与管理
互联网科技创新的路径
富国互联网科技002692
求路客互联网科技电话
恒生互联网科技趋势