pprof最全功能

不经意丶执着Jason · · 770 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

支持什么使用模式

  • 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 可以对比


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:不经意丶执着Jason

查看原文:pprof最全功能

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

770 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传