每日一库:pprof简介
1.iota简介2.go generate命令简介3.golang uuid库介绍4.gRPC基本教程5.protolator简介6.Govulncheck v1.0.0 发布了!7.每日一库:GORM简介8.Go泛型简介9.Go 1.21发布!10.Golang zip压缩文件读写操作11.本地搭建playground12.zap自定义日志级别13.Gorm日志设置14.gin启动https支持15.Go Plugin介绍16.Golang漏洞管理17.可以丢掉123456了18.如何优雅地退出程序19.PGO前瞻20.go多版本管理21.openAI发布v0.2.0了22.Gin中间件开发23.Fabric区块链浏览器(1)24.每日一库:Memcache25.protojson简介26.每日一库:gosec27.Fabric区块链浏览器(2)28.每日一库:fsnotify简介29.gRPC with JWT30.embed简介31.Fabric区块链浏览器(3)
32.每日一库:pprof简介
33.go 1.21:cmp34.完全可复制、经过验证的 Go 工具链35.PGO in Go 1.2136.Fabric 2.x 智能合约开发记录37.为不断增长的Go生态系统扩展gopls38.每日一库:lumberjack -- 日志轮换和管理39.2023-04-26-微信安全模式下消息解析40.WASI support in Go41.每日一库:Prometheus42.如何实现流量控制和熔断降级?43.消息队列 - RabbitMQ44.Go 1.22 中的 For 循环45.设计模式之单例模式46.每日一库:使用Viper处理Go应用程序的配置47.使用 gopkg.in/yaml.v3 解析 YAML 数据48.在Go中如何实现并发49.解析类型参数50.设计模式之工厂模式51.每日一库:cobra 简介52.slices in Go 1.2153.go defer简介54.slice简介55.Golang Map底层实现简述56.Go 如何实现多态57.查找数组中第K大的元素58.go中的内存逃逸59.数组 vs. 切片60.队列(Queue):先进先出(FIFO)的数据结构61.go 中如何实现定时任务62.go 中的循环依赖63.Go中字符串处理:fmt.Sprintf与string.Builder的比较64.理解Go中的零值65.go 上下文:context.Context66.go中异常处理流程67.Go实现网络代理68.Why gRPC ?69.Go:条件控制语句70.Go 获取 IP 地址71.Golang并发控制方式有几种?72.Golang面试:泛型73.LRU算法简介74.MRU算法实现75.ARC算法实现76.Go语言中的交互式CLI开发:survey库简介77.C如何调用Gopprof简介
pprof
是Go语言的一个性能分析库,它可以帮助开发者找出程序中的性能瓶颈。pprof
提供了CPU分析、内存分析、阻塞分析等多种性能分析功能。
以下是pprof
的主要特性:
- CPU分析:
pprof
可以记录程序在CPU上的运行时间,并将这些数据以火焰图的形式展示出来。这可以帮助开发者找出程序中消耗CPU时间最多的部分。 - 内存分析:
pprof
可以记录程序的内存使用情况,包括堆内存、栈内存等。这可以帮助开发者找出程序中的内存泄漏。 - 阻塞分析:
pprof
可以记录程序中的阻塞情况,包括goroutine的阻塞、网络I/O的阻塞等。这可以帮助开发者找出程序中的性能瓶颈。 - Web界面:
pprof
提供了一个Web界面,开发者可以在这个界面上查看和分析性能数据。 - 易于集成:
pprof
可以很容易地集成到任何Go程序中,只需要在程序中导入net/http/pprof
包,并启动一个HTTP服务器,就可以通过Web界面查看性能数据。
使用pprof
进行性能分析的基本步骤如下:
- 在程序中导入
net/http/pprof
包。 - 启动一个HTTP服务器。
- 在浏览器中打开
http://localhost:8080/debug/pprof/
,就可以看到性能数据。 - 使用
pprof
的命令行工具或Web界面进行性能分析。
扩展 github.com/gin-contrib/pprof
github.com/gin-contrib/pprof
和标准库里的 pprof
都是用于性能分析和调试的工具,但它们在使用方式和功能上存在一些区别。下面是它们的对比:
github.com/gin-contrib/pprof
:
- 依赖关系:
github.com/gin-contrib/pprof
是 Gin 框架的一个中间件,它需要在 Gin 应用中使用。需要使用gin.Engine
进行集成。 - 使用方式: 在路由中注册中间件后,可以通过访问特定的路由来访问 pprof 的不同调试页面,如
/debug/pprof
。 - 功能扩展:
github.com/gin-contrib/pprof
通过中间件将标准库的pprof
功能集成到 Gin 框架中,提供了 Web UI,可以方便地查看 CPU、内存等性能指标,并支持访问堆栈跟踪、内存分配等信息。 - 适用场景: 适用于已经使用 Gin 框架开发的项目,希望通过 Web UI 方便地查看性能指标。
标准库里的 pprof
:
- 依赖关系: 标准库里的
pprof
是 Go 语言的标准库中自带的性能分析工具,无需额外的依赖。 - 使用方式: 可以通过在代码中导入
net/http/pprof
包,并将其注册到路由中,来创建用于访问 pprof 页面的 HTTP 路由。 - 功能扩展: 标准库的
pprof
提供了一系列命令行工具和 HTTP 接口,可以进行 CPU 分析、内存分析、堆栈跟踪等。 - 适用场景: 适用于任何使用 Go 语言开发的项目,无论是否使用了特定的框架。
选择建议:
- 如果你正在使用 Gin 框架开发项目,并且希望通过 Web UI 方便地查看性能指标,那么可以选择
github.com/gin-contrib/pprof
。 - 如果你希望在任何 Go 项目中使用性能分析工具,而不受框架限制,那么可以使用标准库里的
pprof
。
总之,两者都提供了在不同场景下进行性能分析和调试的能力,具体的选择取决于你的项目需求和使用情况。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程