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 问题的代码并优化