pprof最全功能

支持什么使用模式

  • Report generation:报告生成
  • Interactive terminal use:交互式终端使用
  • Web interface:Web 界面

可以做什么

  • CPU Profiling:CPU 分析,按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况,可确定应用程序在主动消耗 CPU 周期时花费时间的位置
  • Memory Profiling:内存分析,在应用程序进行堆分配时记录堆栈跟踪,用于监视当前和历史内存使用情况,以及检查内存泄漏
  • Block Profiling:阻塞分析,记录 goroutine 阻塞等待同步(包括定时器通道)的位置
  • Mutex Profiling:互斥锁分析,报告互斥锁的竞争情况
  • Goroutine 查询

如何使用

通过web页面访问

对于本地程序,可以在代码中开放一个端口,提供http服务,用于展示pprof内容信息。http://127.0.0.1:6060/debug/pprof/

安装有go环境的机器

Cpu profiling:

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=60

内存分析:

go tool pprof -inuse_space http://9.144.229.99:11021/debug/pprof/heap

  • inuse_space:分析应用程序的常驻内存占用情况
  • alloc_objects:分析应用程序的内存临时分配情况

还可以通过curl的方式 将分析结果保存,并导入到有golang环境的地方进行分析,比如得到两个内存使用情况的文件,
通过命令 go tool pprof -http=:8080 -base heap.current heap.current1 可以对比

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:Golang 大杀器之性能剖析 PProf 前言 写了几吨代码,实现了几百个接口。功能测试也通过了,终于...
    mick_阅读 8,790评论 0 3
  • 原文地址:Golang 大杀器之性能剖析 PProf 前言 写了几吨代码,实现了几百个接口。功能测试也通过了,终于...
    Li_MAX阅读 3,707评论 0 0
  • 原文地址:Golang 大杀器之性能剖析 PProf 前言 写了几吨代码,实现了几百个接口。功能测试也通过了,终于...
    EDDYCJY阅读 73,195评论 7 78
  • 1. 概述 在 go 语言中,主要关注的应用运行情况主要包括以下几种: CPU Profiling:CPU 分析,...
    northking阅读 3,621评论 0 0
  • 基本介绍 pprof 是在做性能优化前的性能分析工具。 安装: go get -u github.com/goog...
    Robin92阅读 23,170评论 0 5