go语言性能调优实战 | 青训营笔记

56 阅读1分钟

原则

  • 要依靠数据不是猜测
  • 要定位最大瓶颈而不是细枝末节
  • 不要过早优化
  • 不要过度优化

性能分析工具-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"