这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
一、本堂课重点内容:
-
编码规范介绍
-
Go 语言的性能优化建议与原理介绍
-
常用性能分析工具 pprof 的使用和工作原理剖析
-
性能调优业务案例分析
二、详细知识点介绍:
- 代码是最好的注释,注释是好代码必不可缺的
- 代码格式可以通过gofmt自动格式化代码
- 注释应该提供代码未表达出的上下文信息
- 变量和函数命名要尽量简洁,同时又需要能够容易让人理解
- 降低阅读理解代码的成本
- 重点考虑上下文信息,设计简洁清晰的名称
- 控制流程尽量简洁,优先处理异常情况,处理逻辑尽量走直线
- 业务中尽量不使用panic,而是使用error提供简明的上下文信息链
- 对于容器,提前声明容量可以减少分配内存使用的时间,从而提高效率
- atomic操作是通过硬件实现,效率比锁高。锁的实现通过操作系统实现,属于系统调用。
三、实践练习例子:
- 性能调优要依靠数据不是猜测,要关注最大的瓶颈而不是细枝末节。
- 性能分析工具pprof:cpu、memory 可以通过命令行和web进行展示
- 使用top命令对函数cpu消耗进行排行,通过list命令查找命令行
- 业务服务优化,需要通过流量构造、压测建立服务性能评估手段
四、课后个人总结:
- 在实际的应用中,性能优化是非常重要的,尤其是常见的、不影响实际实现的优化是非常有必要的。对于接口性能要求非常高的情况,可以使用pprof工具进行进一步优化。针对不同的业务有不同的优化手段。流程:1、建立服务性能评定手段;2、分析性能数据,定位性能瓶颈;3、重点优化项改造;4、优化效果验证。
五、引用参考: