39|性能分析利器:深入pprof与trace工具
郑建勋
你好,我是郑建勋。
这节课,我们来学习分析 Go 程序的利器:pprof 和 trace。
pprof 及其使用方法
先来看 pprof。pprof 用于对指标或特征的分析(Profiling)。借助 pprof,我们能够定位程序中的错误(内存泄漏、race 冲突、协程泄漏),也能对程序进行优化(例如 CPU 利用率不足等问题)。
Go 语言运行时的指标并不对外暴露,而是由标准库 net/http/pprof 和 runtime/pprof 来与外界交互。其中, runtime/pprof 需要嵌入到代码进行调用,而 net/http/pprof 提供了一种通过 HTTP 获取样本特征数据的便利方式。而要对特征文件进行分析,就得依赖谷歌推出的分析工具 pprof 了。这个工具在 Go 安装时就存在,可以用 go tool pprof 执行。
要用 pprof 进行特征分析需要执行两个步骤:收集样本和分析样本。
收集样本有两种方式。一种是引用 net/http/pprof,并在程序中开启 HTTP 服务器,net/http/pprof 会在初始化 init 函数时注册路由。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了Go语言程序性能分析利器pprof的使用方法,包括收集样本和分析样本的步骤,以及通过pprof进行堆内存分析的具体操作。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- Realm思考题: 单次执行占用很高的cpu和内存的函数,不一定是瓶颈。 调用非常频繁的函数,并且每次需要分配内存或者造成软中断,也可能形成瓶颈。2023-01-12归属地:浙江1
- 公共账号pprof top后为什么会有负数出现2024-01-06归属地:陕西
- 加油火焰图 : 框越长、颜色越深,代表当前函数占用 CPU 的时间越久。 —————— 这句话有问题哈,框越长,代表当前函数占用CPU的时间越久。但是和颜色无关,火焰图的颜色是随机的暖色调。2023-05-18归属地:广东
- 徐海浪内存分配多和CPU耗时长,只能说明这个函数占用的资源多,还需要结合执行次数分析,计算平均每次执行时间和内存分配的情况。2023-01-17归属地:广东
收起评论