这是我参与「第五届青训营 」伴学笔记创作活动的第 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, 根据指定的正则表达式查找代码行