GO性能调优
性能调优原则
- 要依靠数据不是猜测,有时候现实跟想的不一样,测试性能也不是一两次就能出结论的,要经过多次测试。
- 要定位最大瓶颈去优化,这样才能大大提高效率。
- 不要过早优化,会提高开发成本
- 不要过度优化,会使程序耦合度过高,不利于后期调整等问题。
性能调优工具:pprof
pprof是一个可视化和分析概要数据的工具。
Pprof在profile中读取一组分析样本。原型格式和生成报告,以可视化和帮助分析数据。它可以生成文本和图形报告(通过使用点可视化包)。
搭建pprof实践项目
下载示例项目,GitHub地址:github.com/wolfogre/go…
会占用1CPU核心和超过1GB内存
可以看这里操作:blog.wolfogre.com/posts/go-pp…
测试结果会汇总在一个文件里头,通过以下命令来查看
go tool pprof http://localhost:6060/debug/pprof/profile
执行命令之后需要等待一段时间,然后会出现一个交互式终端,可以输入top命令查看,这些教程里面都有说
flat :当前函数本身的执行耗时
flat%: flat占CPU总时间的比例
sum%: 上面每一行flat%总和,cum当前函数本身加上调用函数的总耗时
cum%:CPU占CPU总时间的比例
- flat==cum,函数中没有调用其他函数
- flat==0,函数中只有其他函数调用
其他方面我就没有多做研究了,知道有这个工具到时候去查就好了。