Go性能调优| 青训营笔记

93 阅读2分钟

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

Go性能调优

准则

  • 我们必须依靠数据而不是推测
  • 要确定成为最大绊脚石的位置,而不是零碎的东西

优化方向

Go语言优化

go本身的优化编译器和运行时间内存分配策略创建了更有效的go分布。 go语言优化主要是编译器和运行时间优化。主要有以下4种:

  1. 内压测试。
  2. 优化代码编辑过程,以便制作更有效的程序。
  3. 优化内存分配策略。
  4. 促进服务着陆认证。

该优化方案只要调整编译器的配置就可以轻松访问,具有很强的一般性。

业务层优化

这里的优化一般都具有很强的针对性,但逻辑较为复杂,一般难以进行性能调优。 我们这时需要借助pprof工具来帮助我们进行性能分析
我们在获得关键数据后,需要进行严谨的性能分析了,定位到关键点后进行正确性验证即压测验证,之后优化效果检测,如果达到期望标准,则可以正式发布上线。
但我们也知道,压测的实验数据和正式发布上线后的采集数据难以保持一致,我们需要做好足够的准备,耐心来面对漫长的优化过程。

基础库优化

和业务层优化相差不大,通过对比查看各组件对核心因素的影响,具体哪部分对资源的使用率更大,在之后针对问题进行优化。

  • 分析基础库核心逻辑和性能瓶颈

    • 设计完善改造方案
    • 数据按需获取
    • 数据序列化协议优化
  • 内部压测验证

  • 推广业务服务落地验证

总结

  • PPROF 分析、特征分析、逃逸分析,我们需要掌握的基本方法。
  • 优化应该是项目相对稳定,优化解决大部分性能问题,不能放弃可读性、兼容性和稳定性。