Go性能优化 | 青训营笔记

52 阅读2分钟

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

一、本堂课重点内容:

  • 编码规范介绍

  • Go 语言的性能优化建议与原理介绍

  • 常用性能分析工具 pprof 的使用和工作原理剖析

  • 性能调优业务案例分析

二、详细知识点介绍:

  • 代码是最好的注释,注释是好代码必不可缺的
  • 代码格式可以通过gofmt自动格式化代码
  • 注释应该提供代码未表达出的上下文信息
  • 变量和函数命名要尽量简洁,同时又需要能够容易让人理解
  • 降低阅读理解代码的成本
  • 重点考虑上下文信息,设计简洁清晰的名称
  • 控制流程尽量简洁,优先处理异常情况,处理逻辑尽量走直线
  • 业务中尽量不使用panic,而是使用error提供简明的上下文信息链
  • 对于容器,提前声明容量可以减少分配内存使用的时间,从而提高效率
  • atomic操作是通过硬件实现,效率比锁高。锁的实现通过操作系统实现,属于系统调用。

三、实践练习例子:

  • 性能调优要依靠数据不是猜测,要关注最大的瓶颈而不是细枝末节。
  • 性能分析工具pprof:cpu、memory 可以通过命令行和web进行展示
  • 使用top命令对函数cpu消耗进行排行,通过list命令查找命令行
  • 业务服务优化,需要通过流量构造、压测建立服务性能评估手段

四、课后个人总结:

  • 在实际的应用中,性能优化是非常重要的,尤其是常见的、不影响实际实现的优化是非常有必要的。对于接口性能要求非常高的情况,可以使用pprof工具进行进一步优化。针对不同的业务有不同的优化手段。流程:1、建立服务性能评定手段;2、分析性能数据,定位性能瓶颈;3、重点优化项改造;4、优化效果验证。

五、引用参考: