这是我参与「第三届青训营-后端场」笔记创作活动的第3篇笔记,笔记的内容是关于高质量编程和性能调优实战的。
1.高质量编程
1)高质量编程简介
高质量编程的原则: 简单性,可读性,生产力。保证好以上三点才能写出高质量可读性高的代码。
2)编码规范
编写高质量的go代码:
代码格式首先要使用gofmt来自动格式化代码,goimports也是go语言官方提供的工具,可以自动增删依赖的包引用。
写好必要的注释:注释应该解释代码作用,解释代码如何做的,解释代码实现的原因,解释代码什么情况下会出错,只有做到以下四点才能高质量写出代码。
命名规范:命名应该简洁,缩略词应该全部大写,当其位于变量开头但是不需要导出的时候可以使用全小写。同时不应该包含包名信息,写好变量命名有助于提高代码的可读性。
编码控制:避免嵌套,保持正常流程清晰;尽量保持正常代码路径为最小缩进。做好异常处理。
3)性能优化建议
使用benchmark工具对性能调试,slice预分配内存减少分配开销,map也可以预分配内存减少开销,字符串处理使用strings.builder拼接等。
2.性能优化实战
1)性能分析工具pprof
性能调优的四大原则:要依靠数据而不是猜测;要定位最大瓶颈而不是细枝末节;不要过早优化;不要过度优化等。
pprof工具有runtime/pprof和net/http/pprof
采样方式有对CPU、堆内存、goroutine、锁mutex、Block阻塞、线程创建进行检测。
分析有网页和可视化终端来显示。
展示时有top方式、调用图、火焰图、Peek、源码方式和反汇编方式等。
2)性能调优案例
对一个埋入许多炸弹的程序中使用pprof工具来逐个分析炸弹位置并进行清除。
通过对高质量编程和性能调优实战的学习,我掌握了用pprof对程序进行性能分析的方法。