go tool pprof 工具读取显示,在下面会讲到
服务型应用
服务型应用通过 "net/http/pprof"库进行获取,在http库中,默认使用了defaultServerMux,可以直接使用即可获取...http.ListenAndServe 时,没有传入自定义的serverMux进行路由处理,则pprof库自动进行了注册:
如果你使用了自定义的serverMux,则需要自己注册,才能获取到pprof...在不同的开源框架中,有提供自己封装好的pprof包,调用更加方便,具体使用请参考框架文档
pprof主要核心就是将pprof路由注册到服务中,并可以访问此服务即可
数据分析
数据分析通过命令 go...,每列的标识为:
flat:函数在 CPU 上运行的时间
flat%:函数在CPU上运行时间的百分比
sum%:是从上到当前行所有函数累加使用 CPU 的比例,如第二行sum=48.52=28.79+19.73...cum:这个函数以及子函数运行所占用的时间,应该大于等于flat
cum%:这个函数以及子函数运行所占用的比例,应该大于等于flat%
最后一列:函数的名字
如果应用程序有性能问题,上面这些信息应该能告诉我们时间都花费在哪些函数的执行上