这是我参与「第五届青训营」伴学笔记创作活动的第8天
Go性能调优
准则
- 我们必须依靠数据而不是推测
- 要确定成为最大绊脚石的位置,而不是零碎的东西
优化方向
Go语言优化
go本身的优化编译器和运行时间内存分配策略创建了更有效的go分布。 go语言优化主要是编译器和运行时间优化。主要有以下4种:
- 内压测试。
- 优化代码编辑过程,以便制作更有效的程序。
- 优化内存分配策略。
- 促进服务着陆认证。
该优化方案只要调整编译器的配置就可以轻松访问,具有很强的一般性。
业务层优化
这里的优化一般都具有很强的针对性,但逻辑较为复杂,一般难以进行性能调优。
我们这时需要借助pprof工具来帮助我们进行性能分析。
我们在获得关键数据后,需要进行严谨的性能分析了,定位到关键点后进行正确性验证即压测验证,之后优化效果检测,如果达到期望标准,则可以正式发布上线。
但我们也知道,压测的实验数据和正式发布上线后的采集数据难以保持一致,我们需要做好足够的准备,耐心来面对漫长的优化过程。
基础库优化
和业务层优化相差不大,通过对比查看各组件对核心因素的影响,具体哪部分对资源的使用率更大,在之后针对问题进行优化。
-
分析基础库核心逻辑和性能瓶颈
- 设计完善改造方案
- 数据按需获取
- 数据序列化协议优化
-
内部压测验证
-
推广业务服务落地验证
总结
- PPROF 分析、特征分析、逃逸分析,我们需要掌握的基本方法。
- 优化应该是项目相对稳定,优化解决大部分性能问题,不能放弃可读性、兼容性和稳定性。