性能优化分析工具 pt.1 | 青训营笔记

111 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 13 天

本节重点

初步了解性能优化有哪些工具可以使用,学会如何搭建 pprof 实践项目,会用浏览器查看指标以及一些 CPU 命令。

简介

性能调优原则:

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

性能分析工具 - pprof

说明:如果希望知道应用在什么地方耗费了多少 CPU、内存;pprof 是用于可视化和分析性能分析数据的工具。

功能简介

pprof 的一些主要功能如下图所示:

image.png

排查实战

  1. 搭建 pprof 实践项目( github.com/wolfogre/go… ) plus: 项目提前埋入了一些炸弹代码,产生可观测的性能问题。

前置准备:

· 下载项目代码,能够编译运行。

· 会占用 1 CPU 核心和超过 1 GB 内存。

image.png

  1. 使用浏览器查看指标

image.png

  1. CPU

可以通过任务管理器(或活动监视器)观察 CPU 运行情况。

image.png

也可以通过命令行指令来完成查看:

go tool pprof "http://localhost:6060/debug/pprof/profile?seconds=10"

image.png

命令:topN,用来查看占用资源最多的函数。

image.png

flat: 当前函数本身的执行耗时; flat%: flat 占 CPU 总时间的比例; sum%: 上面每一行的 flat% 总和; cum: 当前函数本身加上其调用函数的总耗时; cum%: cum 占 CPU 总时间的比例。

!注意:Flat == Cum,函数中没有调用其他函数;Flat == 0,函数中只有其他函数的调用。

命令:list,根据指定的正则表达式查找代码行。

命令:web,调用关系可视化。

阶段小结

本节学习了性能调优的有效工具 pprof,包括搭建实践项目,查看指标以及 CPU 命令的使用。