Golang pprof 分析程序的使用内存和执行时间

一、分析程序执行的内存情况

package main

import (
	"os"
	"runtime/pprof"
)

func main() {
    // ... 你的程序逻辑 ...

    // 将 HeapProfile 写入文件
    f, err := os.Create("heap.prof")
    if err != nil {
        panic(err)
    }
    defer f.Close()
    pprof.WriteHeapProfile(f)
}

然后执行:

# 解析 heap.prof 文件
go tool pprof -alloc_space heap.prof

# 在交互式界面中查看数据
(pprof) top

其他的选项还有:

-alloc_space:查看分配空间相关的信息
-inuse_space:查看当前内存使用情况

效果大概是这样的:

二、分析程序执行的CPU使用时间情况

import (
    "os"
    "runtime/pprof"
    "log"
)

func main() {
    // 创建文件用于保存 CPU profile
    f, err := os.Create("cpu.prof")
    if err != nil {
        log.Fatal(err)
    }
    defer f.Close()

    // 开始 CPU profiling
    if err := pprof.StartCPUProfile(f); err != nil {
        log.Fatal(err)
    }
    defer pprof.StopCPUProfile()

    // 其他程序逻辑...
}

然后同理执行:

go tool pprof cpu.prof

# 在交互式界面中查看数据
(pprof) top

效果是这样的:

也是可以通过 top 和 list 某个函数步骤去查看具体信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/430970.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图像AI换脸软件:AI FaceSwap 中文版

AI FaceSwap 是一款利用人工智能技术进行面部交换的软件。该软件通过先进的人工智能算法,能够将一个人的面部表情、神态和特征准确地映射到另一个人身上,实现面部交换的效果。用户只需要提供两张照片,一张是目标人物的照片,另一张…

一维化01背包(详细)

http://t.csdnimg.cn/P7R3G 之前我们介绍了01背包,但是dp数组是二维化的,现在我们需要将其变成一维数组,如果已经对二维化的01背包十分了解了,那么理解一维化的dp数组也不是问题。 目录 分析 遍历顺序 原二维遍历 一维倒序遍…

GPT-4 及更高版本:大型语言模型的力量

GPT-4革命:人工智能如何重塑SEO行业 在人工智能领域,GPT-4 等语言模型的演变标志着一个重要的里程碑。 本文深入探讨了 GPT-4 的功能和潜力,同时也思考了人工智能领域的未来。 GPT-4 的出现:人工智能的新时代OpenAI 开发的 GPT-4…

Java引用强度

强引用 > 软引用 > 弱引用 > 虚引用 强引用:传统的创建Java对象的方式,如:Object obj new Object();任何情况下,只要存在强引用关系,垃圾回收器永远不会回收掉被引用的对象。 软引用:描述一些还…

微信小程序开发学习笔记《20》uni-app框架-分类导航区域与楼层区域

微信小程序开发学习笔记《20》uni-app框架-分类导航区域与楼层区域 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、分类导航区域 1.1 获取分类导航的数据 实现思路: 定义data数据在onLoad…

smardaten数据报表功能全新上线,迎战“中国式报表”!

数据报表是企业业务数据统计分析最主要的应用方式之一。 面对复杂多元的报表结构、大量的数据处理需求时,“中国式报表”依然是业务人员、特别是财务人员进行数据统计分析的主要方式。虽然绝大多数企业都已部署高效的BI平台,但报表统计与可视化BI之间的…

电源完整性设计的重要三步!

电源模块布局布线 电源模块是电子设备的能量来源,其性能与布局直接影响到整个系统的稳定性和效率。正确的布局和走线不仅能减少噪声干扰,还能确保电流的顺畅流通,从而提高整体性能。 1、电源模块布局 ● 源头处理:电源模块作为…

解决手机连接校园网同一设备老是需要重复认证的问题(+解决原理)

相信大家平时在使用校园网的时候总会遇到同一设备隔三岔五就要重复认证绑定的问题,这里直接附上解决方案。 打开手机的wifi-->连接校园网然后进入设置-->在隐私选项选择“使用设备MAC” 如下图,问题解决了!如果想知道原理的可以继续往…

通过docker安装Mongodb

通过Docker安装MongoDB非常简单和方便,以下是基本步骤: 拉取MongoDB镜像: 首先确保你已经在本地机器上安装了Docker。然后,在命令行中执行以下命令来从Docker Hub下载官方的MongoDB镜像(这里以最新版本为例&#xff09…

Java基础(5) 泛型 日期和时间 线程 File-输入流

泛型 java的泛型有点像ts的泛型 public class ArrayList<T> {private T[] array;private int size;public void add(T e) {...}public void remove(int index) {...}public T get(int index) {...} }// 创建可以存储String的ArrayList: ArrayList<String> strLis…

FIFO漫谈

文章目录 目录 概要 整体架构流程 技术名词解释 技术细节 为什么需要FIFO&#xff1f; 小结 概要 FIFO&#xff0c;全称为First-In, First-Out&#xff0c;意为先进先出。它就像是一个排队买东西的队伍&#xff0c;第一个进入队伍的人会第一个离开队伍。在芯片中&#xff0c;F…

数据库SQLite

1.简单创建一个数据库和删除一个数据库 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:orientation"vertical">&l…

Spring基础——XML配置Bean的依赖注入

目录 什么是依赖注入依赖的解析 Spring提供的两种注入方式1. 基于构造器的赖注入1.1 通过类型注入1.2 通过索引注入1.3 通过参数名注入1.4 通过静态工厂方法参数注入 基于Setter的依赖注入 Spring对不同类型的注入方式1. 字面值&#xff08;String&#xff0c;基本类型&#xf…

“而且,再加上”可以用哪个语法来表示,柯桥考级韩语学习

语法 --는/은/ㄴ 데다가 1.语法&#xff1a;는/은/ㄴ 데다가 2.表示&#xff1a;用于谓词词干和体词谓词形后, 表示在原有的状况上再加上其他情况。 3.添加&#xff1a; 4.例句&#xff1a; 当然&#xff0c;与这个语法含义相近的还有不少语法&#xff0c;有一部分是初级暂时…

网络安全: Kali Linux 使用 hping3 阻塞目标主机

目录 一、实验 1.环境 2. 物理机测试远程连接 Windows server 3.Kali Linux 使⽤ hping3 ⼯具 二、问题 1. 常见的 DoS ⽅式有哪些 2.hping3 测试⼯具的命令格式和选项参数 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux2024.…

洗地机怎么选?2024年洗地机推荐,希亦、添可、追觅、石头哪一款清洁力更好?

洗地机是一款可以一遍搞定扫地和拖地一系列动作的清洁神奇&#xff0c;它能让我们真实的感受到打扫屋子是一件很减压的事情&#xff0c;但是目前市面上的洗地机太多了&#xff0c;大家都不知道怎么样的才算好&#xff0c;希亦、添可、追觅、石头洗地机值不值得买&#xff1f;我…

用边缘计算网关解决离散行业数采问题-天拓四方

一、引言 随着工业4.0时代的来临&#xff0c;离散制造行业正面临数字化转型的关键节点。离散制造的特点是小批量、多品种、高复杂度&#xff0c;如何实现高效、精准的数据采集与分析&#xff0c;提升生产效率和产品质量&#xff0c;成为行业亟待解决的问题。边缘计算网关作为一…

python数据类型及转换

一、数据类型 数据类型分为数值型、布尔型、字符串型等 1.1数值类型 数值类型可以分为整数类型、浮点数类型、复数类型 1.1.1整数类型 (1)概念&#xff1a;整数类型指数值是没有小数部分的&#xff0c;包含正整数、负整数和0 (2)进制种类&#xff1a;十进制--->234、5…

Lichee Pi 4A:RISC-V架构的开源硬件之旅

一、简介 Lichee Pi 4A是一款基于RISC-V指令集的强大Linux开发板&#xff0c;它凭借出色的性能和丰富的接口&#xff0c;吸引了众多开发者和爱好者的关注。这款开发板不仅适用于学习和研究RISC-V架构&#xff0c;还可以作为软路由、小型服务器或物联网设备的核心组件。 目录 一…

【pyinstaller打包记录】Linux系统打包可执行文件后,onnxruntime报警告(Init provider bridge failed)

简介 PyInstaller 是一个用于将 Python 程序打包成可执行文件&#xff08;可执行程序&#xff09;的工具。它能够将 Python 代码和其相关的依赖项&#xff08;包括 Python 解释器、依赖的模块、库文件等&#xff09;打包成一个独立的可执行文件&#xff0c;方便在不同环境中运行…