原则
- 要依靠数据不是猜测
- 要定位最大瓶颈而不是细枝末节
- 不要过早优化
- 不要过度优化
性能分析工具-pprof
搭建项目
下载 github.com/wolfogre/go…项目 并打开
运行main.go文件,在浏览器中输入localhost:6060/debug/pprof可以可视化测试
CPU排查
在终端输入一下命令进入命令模式
go tool pprof "http://localhost:6060/debug/pprof/profile?seconds=10"
输入top命令查看占用资源最多的函数
解释每一列的含义:
- flat 当前函数本身的执行耗时
- flag% flag占CPU总时间的比例
- sum% 上面每一行的flat%总和
- cum 指当前函数本身加上其调用函数的总耗时
- cum% cum占CPU总时间的比例
输入list命令根据指定的正则表达式查找代码行
输入web命令调用关系可视化
内存排查
go tool pprof -htttp=:8080 "http://localhost:6060/debug/pprof/heap"