【GO】 32.pprof

news2024/11/27 2:50:13

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

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.coloradmin.cn/o/662421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10.MyBatis逆向工程

MyBatis逆向工程 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: Java实体类Mapper接口M…

腾讯云服务器ping不通怎么解决?什么原因?

腾讯云服务器ping不通什么原因?ping不通公网IP地址还是域名?新手站长从云服务器公网IP、安全组、Linux系统和Windows操作系统多方面来详细说明腾讯云服务器ping不通的解决方法: 目录 腾讯云服务器ping不通原因分析及解决方法 安全组ICMP协…

CentOS7.9 k8s集群环境搭建

环境搭建 本次环境搭建需要安装三台Centos服务器(一主二从),k8s采用1.25.4版本 主机安装 安装虚拟机过程中注意下面选项的设置: 操作系统环境:CPU(2C) 内存(4G) 硬盘(50G)语言选择:English软件选择:基础设施服务器分区…

某乎评论数据

文章目录 声明目标网址加密参数分析与首页测试翻页逻辑实现通用的csv保存全部采集代码整合往期逆向文章推荐很久没有看评论接口了,最近运行了一下旧的脚本,发现不能用,应该是也加了X-Zse-96校验,本篇就试着解决评论采集问题。 声明 本文章中所有内容仅供学习交流,严禁用于…

个人简历电子版免费范文(合集)

个人简历电子版免费范文篇1 基本信息 姓名:__ 性别:__ 出生日期:__ 籍贯:__市 目前城市:__市 联系电话:__ E-mail:__ 应聘方向 求职行业:金融/投资/证券,银行&#xff0c…

Rust 1.70.0 发布

导读Rust团队很高兴地宣布新版本的Rust,1.70.0。Rust是一种编程语言,使每个人都能建立可靠和高效的软件。 如果你通过rustup安装了以前的Rust版本,你可以用1.70.0获得: rustup update stable 如果你还没有,你可以从我…

记一次 .NET 某旅行社审批系统 崩溃分析

一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序跑着跑着就崩溃了,让我看下怎么回事,其实没怎么回事,抓它的 crash dump 就好,具体怎么抓也是被问到的一个高频问题,这里再补一下链接&…

【Python 随练】求和序列

题目: 求 saaaaaaaaaaaa…a 的值,其中 a 是一个数字。 例如 222222222222222(此时共有 5 个数相加),几个数相加有键盘控制。 简介: 在本篇博客中,我们将解决一个求和问题:给定一个数字 a,求…

基于msm8953调试CST226SE触摸TP

目录 1、事件驱动和设备挂载 2、adb调试节点 3、修改设备树地址 4、修改驱动地址 5、修改firmware固件参数 我们总是习惯不断的搜索,阅读前人总结和分享的经验,在不断尝试中进步,如果没有大家的分享经验,学习和探索的过程将是多么…

基于Flask+Bootstrap+机器学习的世界杯比赛预测系统

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

云原生安全 - 构建强大的安全基石保障现代化应用

导言: 随着云原生技术的兴起和广泛应用,越来越多的企业将其应用于现代化应用开发和部署。然而,随之而来的安全威胁也随之增加。在这篇文章中,我们将探讨云原生安全的重要性,以及如何构建强大的安全基石来保障现代化应…

hdfs的透明加密记录

1、背景 我们知道,在hdfs中,我们的数据是以block块存储在我们的磁盘上的,那么默认情况下,它是以密文存储的,还是以明文存储的呢?如果是明文存储的,那么是否就不安全呢?那么在hdfs中…

python3 爬虫相关学习10:RE 库/ regex /regular experssion正则表达式学习

目录 1 关于:re / regex / regular expression 1.1 什么是正则表达式 1.2 在python中安装正则模块 1.2.1 python里一般都默认安装了 re正则模块,可以先查看确认下 1.2.2 如果没有安装,可以按照正则库regex, pip install regex 1.3 …

基于PHP的学生管理系统

前言 基于PHP的学生管理系统; 实现 登录、注册、学生信息、修改学生、删除学生、查询学生、添加学生等功能 ; 环境准备 开发平台:PhpStrom2022.1.2 、Phpstudy_pro 数据库:MySQL5.7.26 技术架构 Bootstrap PHP7.3.4html5css3 项目…

SpringBoot中配置Https入门

一、生成一个https证书 我们使用Java自带的JDK管理工具keytool来生成一个免费的https证书,在我们的Java安装目录下,在bin目录下我们使用cmd启动命令行窗口,执行如下命令生成一个https证书。 keytool -genkey -alias myhttps -keyalg RSA -keysize 2048…

计算机网络 01 IP协议

01.IP协议,也就是IP报文。 宏观: 首部长度:由于固定部分是20B,所以数值最小是5。 02.IP报文,中的IP地址,常见的是IPV4,也就是四个字节,32位。 常见的IP地址有三种: 第一…

在 Python 中使用requests模块发布表单数据

文章目录 使用 requests 模块在 Python 中发布表单数据POST请求方式介绍在 Python 中安装 requests 模块post() 方法的应用 本篇文章介绍了 Python requests 模块,并说明了我们如何使用该模块在 Python 中发布表单数据。 使用 requests 模块在 Python 中发布表单数据…

由浅入深,详解ViewModel那些事

前言:今年的龙舟雨来了,一场接一场,雨量很大。 前言 以往如果需要在 Activity 或者 Fragment 中保存数据状态则需要重写onSaveInstanceState ,使用bundle去存储相应的数据和状态,但是这也只能保存轻量简单的序列化数据…

【STM32】软件I2C

【STM32】软件I2C I2C简介 I2C总线是一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信。I2C总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。 在一个i2c通讯总线中,可连接…

怎么显示文件后缀名?查看文件后缀名可以这样做!

案例:在我的电脑上,看不到文件的后缀名,这会导致命名时出现重复文件后缀的情况,给我带来了不好的体验。怎么才能看到文件的后缀名呢?如何操作? 在日常使用电脑的过程中,我们经常需要查看文件的…