这是我参与「第五届青训营」伴学笔记创作活动的第 13 天
本节重点
初步了解性能优化有哪些工具可以使用,学会如何搭建 pprof 实践项目,会用浏览器查看指标以及一些 CPU 命令。
简介
性能调优原则:
- 要依靠数据而不是猜测
- 要定位最大瓶颈而不是细枝末节
- 不要过早优化
- 不要过度优化
性能分析工具 - pprof
说明:如果希望知道应用在什么地方耗费了多少 CPU、内存;pprof 是用于可视化和分析性能分析数据的工具。
功能简介
pprof 的一些主要功能如下图所示:
排查实战
- 搭建 pprof 实践项目( github.com/wolfogre/go… ) plus: 项目提前埋入了一些炸弹代码,产生可观测的性能问题。
前置准备:
· 下载项目代码,能够编译运行。
· 会占用 1 CPU 核心和超过 1 GB 内存。
- 使用浏览器查看指标
- CPU
可以通过任务管理器(或活动监视器)观察 CPU 运行情况。
也可以通过命令行指令来完成查看:
go tool pprof "http://localhost:6060/debug/pprof/profile?seconds=10"
命令:topN,用来查看占用资源最多的函数。
flat: 当前函数本身的执行耗时; flat%: flat 占 CPU 总时间的比例; sum%: 上面每一行的 flat% 总和; cum: 当前函数本身加上其调用函数的总耗时; cum%: cum 占 CPU 总时间的比例。
!注意:Flat == Cum,函数中没有调用其他函数;Flat == 0,函数中只有其他函数的调用。
命令:list,根据指定的正则表达式查找代码行。
命令:web,调用关系可视化。
阶段小结
本节学习了性能调优的有效工具 pprof,包括搭建实践项目,查看指标以及 CPU 命令的使用。