go tool pprof

梦想与她 提交于 2020-10-18 02:34:20

gin - pprof

go get https://github.com/gin-contrib/pprof

main.go

package main

import (
	"github.com/gin-contrib/pprof"
	"github.com/gin-gonic/gin"
)

func main() {
	s := gin.Default()

	// 方式一:性能
	pprof.Register(s)

	// 方式二:性能 - 授权访问
	a := s.Group("/admin", gin.BasicAuth(gin.Accounts{"root": "888000"}))
	pprof.RouteRegister(a)

	s.Run(":13000")
}

web访问

http://127.0.01:13000/admin/debug/pprof/

页面元素

类型 描述 备注
allocs 内存分配情况的采样信息 可以用浏览器打开, 但可读性不高
blocks 阻塞操作情况的采样信息 可以用浏览器打开, 但可读性不高
cmdline 显示程序启动命令及参数 可以用浏览器打开
goroutine 当前所有协程的堆栈信息 可以用浏览器打开, 但可读性不高
heap 堆上内存使用情况的采样信息 可以用浏览器打开, 但可读性不高
mutex 锁争用情况的采样信息 可以用浏览器打开, 但可读性不高
profile CPU 占用情况的采样信息, 持续 30s 浏览器打开会下载文件
threadcreate 系统线程创建情况的采样信息 可以用浏览器打开, 但可读性不高
trace 程序运行跟踪信息 浏览器打开会下载文件

终端交互

输入 top10

说明
flat 给定函数上运行耗时
flat% 同上的 CPU 运行耗时总比例
sum% 给定函数累积使用 CPU 总比例
cum 当前函数加上它之上的调用运行总耗时
cum% 同上的 CPU 运行耗时总比例

type 类型

说明
inuse_space 分析应用程序的常驻内存占用情况
alloc_objects 分析应用程序的内存临时分配情况

可视化界面

  • 启动方式一
go tool pprof -http=:8080 cpu.prof
  • 启动方式二
go tool pprof cpu.prof
(pprof) web

web 命令需要安装 graviz: http://www.graphviz.org/download/

  • mac 安装命令:brew install graphviz
  • centos 安装命令:yum install graphviz
  • ubuntu 安装命令:apt install graphviz
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!