性能优化 | 青训营笔记

61 阅读1分钟

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

性能优化分析工具 pprof

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

性能分析工具pprof

说明:希望知道应用在什么地方耗费了多少CPU、Memory
pprof是用于可视化和分析性能分析数据的工具
pprof功能简介

pprof排查实战

CPU:

pprof的采样结果是将一段时间内的信 息汇总输出到文件中,所以首先需要拿到这个profile文件。你可以直接使用暴露的接口链接下载文件后使用,也可以直接用pprof工具连接这个接口下载需要的数据。

这里我们使用go tool pprof +采样链接来启动采样。链接中就是刚刚「炸弹」程序暴露出来的接口,链接结尾的profile代表采样的对象是CPU使用。 如果你在浏览器里直接打开这个链接,会启动一个60秒的采样,并在结束后下载文件。这里我们加上seconds=10的参数,让它采样+秒。

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

Saved profile in C:\Users\handsome\pprof\pprof.samples.cpu.001.pb.gz

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

Flat == Cum,函数中没有调用其他函数; Flat == 0,函数中只有其他函数的调用

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