golang使用火焰图查看性能

技术修仙 · · 3326 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

下载graphviz

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

windows下载msi格式,安装成功后,进入命令行查看是否安装成功
指令:dot -version
如下图,说明安装成功


添加代码

在你的程序中加入如下代码:

import "net/http"
import _ "net/http/pprof"
func main() {
    // 主函数中添加
    http.ListenAndServe("0.0.0.0:9999", nil)
}

运行程序

在命令行执行如下指令:

go tool pprof -http=:1234http://localhost:9999/debug/pprof/profile

等几秒钟就会出现如下界面,选择【Flame Graph】


图片.png
图片.png

如上图,宽度代表耗时

beego查看接口调用耗时

如果你是用beego框架开发,beego提供了查看接口调用的功能,跟火焰图功能类似
在配置文件中添加如下配置

EnableAdmin = true
AdminHttpAddr = 0.0.0.0
AdminHttpPort = 19099

启动程序

访问 localhost:19099,出现如下界面


图片.png
注意:下面的内容,在点击对应的操作后,需要操作接口,才能获取对应的接口使用统计信息

【Requests statistics】:查询接口调用耗时情况,如下图


图片.png

【lookup goroutine】:查找协程信息
【get cpuprof】:查看cpu耗时统计
【get memprof】:查看内存消耗统计
【gc summary】:查看垃圾回收情况,如下图


图片.png

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:技术修仙

查看原文:golang使用火焰图查看性能

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3326 次点击  
加入收藏 微博
1 回复  |  直到 2020-05-13 19:59:57
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传