pprof-study

网上的大多数文章都介绍了pprof 性能分析优化的使用方式, 但是实战项目少之又少

本项目是一个 go pprof 实战项目, 下面将手把手带你通过 web, 交互界面, graph图/火焰图 找到性能优化位置并优化代码

启动示例代码

方式1: web

浏览器下面的性能分析地址


  • allocs 内存分配情况的采样信息
  • blocks 阻塞操作情况的采样信息
  • cmdline 显示程序启动命令及参数
  • goroutine 当前所有协程的堆栈信息
  • heap 堆上内存使用情况的采样信息
  • mutex 锁争用情况的采样信息
  • profile CPU 占用情况的采样信息
  • threadcreate 系统线程创建情况的采样信息
  • trace 程序运行跟踪信息

示例优化 alloc

点击 alloc 进入下面的界面



我们在代码中找到该位置



优化代码(这里只是示例,我们注释掉就行了)


重启优化后程序

方式2: 命令行交互界面

示例优化 goroutine


我们找到该位置的代码将其优化


重启优化后程序

方式3: graph图/火焰图

示例优化 profile CPU

(1) 下载 sample 文件(方式和打开命令行的一样)

(2) 解析文件到 web 界面

打开


查看 graph 图


查看火焰图


最后我们找到该位置优化代码(这里只是示例,我们注释掉就行了)




重启优化后程序

练习题:

使用任意一种方式找到阻塞 block 问题的代码并优化