golang开发如何安装go-torch火焰图
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,小编给大家分享一下golang开发如何安装go-torch火焰图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!安装1、 安装go-torchgo get github.com/ube
千家信息网最后更新 2025年11月06日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安全错误
数据库的锁怎样保障安全
长沙市软件开发有限公司
如何看电脑服务器ip
嘉定区信息软件开发定制收费
西安众成网络技术有限公司
海关截单数据库
智能交通服务器市场规模
山东齐民网络技术有限公司
jdk对于数据库的作用
微信云服务器头像
学生选课系统 数据库
网络安全审查办法新旧对比
三种软件开发生命周期的特点
雄帝科技 互联网数据中心
服务器管理的用户和组不见了
网络安全为人民靠人民主题图
网络安全法 告知
数据库驱动失败
手机软件开发和自动化
证华网络技术
奥迪互联网科技
服务器输入命令行和卡
软件开发者哪家便宜
三国志战略版 新人进哪个服务器
网络安全 人民警察
中航神州网络技术有限公司
网络安全防诈骗手抄报 简笔画
数据库物理存储方式称为
qq远程服务器地址
网络安全思科拓扑图
网络安全简单写的字