【GO】 32.pprof

news/2024/11/24 2:34:40/

一 . 添加引用启动项目访问指标页面

1.1 在main程序添加pprof引用,并启动网页

"net/http"
_ "net/http/pprof"
go func() {log.Println(http.ListenAndServe(":6060", nil))
}()

1.2 访问pprof页面

http://127.0.0.1:6060/debug/pprof/

 

  • allocs:查看过去所有内存分配的样本。
  • block:查看导致阻塞同步的堆栈跟踪。
  • cmdline: 当前程序的命令行的完整调用路径。
  • goroutine:查看当前所有运行的 goroutines 堆栈跟踪。
  • heap:查看活动对象的内存分配情况。
  • mutex:查看导致互斥锁的竞争持有者的堆栈跟踪。
  • profile: 默认进行 30s 的 CPU Profiling,得到一个分析用的 profile 文件。
  • threadcreate:查看创建新 OS 线程的堆栈跟踪。
  • trace:mp.weixin.qq.com/s/I9xSMxy32…

注意,默认情况下是不追踪block和mutex的信息的,如果想要看这两个信息,需要在代码中加上两行:

runtime.SetBlockProfileRate(1) // 开启对阻塞操作的跟踪,block  
runtime.SetMutexProfileFraction(1) // 开启对锁调用的跟踪,mutex

1.3 通过命令查询

这个命令会把网页的allocs信息下载的本地,并进去pprof进程中,可以通过命令查看具体信息

go tool pprof http://localhost:6060/debug/pprof/allocs

saved profile in可以看到下载本地的位置

top

显示10条最耗资源的记录

top20 top30 topN,N是多少就显示多少

1.4 查看cpu情况

go tool pprof http://localhost:6060/debug/pprof/profile

可能我的程序没有操作,所以没有数据

二. 看图片

2.1 看图片,要先安装graphviz。

mac 使用brew install graphviz

brew install graphviz

2.2 查看goroutine

使用web命令,会把svg文件使用默认浏览器打开

go tool pprof http://localhost:6060/debug/pprof/goroutine
web

 

2.3 新页面

输入下面的命令,默认浏览器打开页面,可以选择图标类型

go tool pprof -http=:8000 http://127.0.0.1:6060/debug/pprof/goroutine

 

 

参考:

golang pprof 实战 | Wolfogre's Blog

golang pprof实用使用指南 - 掘金

golang的pprof与火焰图实战 | wish


http://www.ppmy.cn/news/466454.html

相关文章

oppo手机忘记密码解决方法

1.在百度搜索oppo刷机工具 2.按安装包上面的教程操作即可

oppo手机如何打开开发者选项

1、关于手机-找到版本信息-进入 2、多次点击版本信息 3、解锁开发者模式--设置-进入其他设置 4、进入开发者模式- 勾选usb调试

手机没信号突然无服务器,OPPO手机没信号怎么办?解决OPPO手机突然没信号的方法...

解决OPPO手机突然没信号的方法 查看手机信号 一般来说,在一下郊区或者是没有建设网络通信设施的地方,手机就会处于信号盲区。此时你可以查看手机信号标识,如果发现信号弱,走出弱信号区域,到宽阔的地方接打电话。 四处走…

手机删除文件还有救,5个不错的Android数据恢复软件

数据丢失是数字世界中令人沮丧的一部分,许多Android用户有时会遭受这种困扰。一些重要文件很容易被意外删除,这在尝试恢复它们时可能会导致不必要的压力。幸运的是,即使您没有已删除文件的备份,数据恢复软件也可以帮助您恢复它们。…

oppo手机忘记解锁图案怎么办

1: 按住关机键不放之后,在跳出的界面上 按住箭头滑动 ,将手机关机。 2: 关机后, 同时按住开机键以及音量减键 ,记住是同时按住。 3: 最开始会跳出语言选择界面,在这里你可以选择语言…

TC8:SOMEIPSRV_SD_MESSAGE_03-06

SOMEIPSRV_SD_MESSAGE_03: Major Version when any version shall be returned 目的 Major Version设置为0xFF时,返回任何版本的服务 测试步骤 DUT CONFIGURE:启动具有下列信息的服务 – Service ID:SERVICE-ID-1 – Instance数量:1Tester:客户端-1发送SOME/IP Notificat…

TC8:SOMEIPSRV_FORMAT_03-04

SOMEIPSRV_FORMAT_03: Protocol Version Protocol Version字段值必须静态设置为0x01 测试步骤 DUT CONFIGURE:启动具有下列信息的服务Service ID:SERVICE-ID-1Instance数量:1Tester:客户端-1监听在网卡上DUT:发送SOME/IP Notification消息Tester:验证接收的SOME/IP Notif…

c 和java哪个简单_c++和Java哪个比较好入门?

选择好的方向比努力更重要,对于初学编程的人来说选择一门合适的编程语言关系到自己以后的职业发展。c和Java那个更适合作为入门语言?给大家简单科普一下~ **C语言** 它是正宗的C语言的嫡系,由C语言发展而来。C支持多种编程范式 --面向对象编程、泛型编程…