这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记。
高质量原则
编写的代码能够达到正确可靠、简介清晰的目标称之为高质量代码。需要考虑各种边界条件是否考虑完备、异常情况处理,稳定性保证、易读易维护。分为简单性、可读性、生产力。
性能优化
基准测试工具
go test -bench=. -benchmen
- 使用slice切片预分配内存,存数据时会优先从缓存取出,减小CPU压力。
- map预分配内存,提前分配好空间减少内存拷贝和rehash消耗。
- 字符串处理优先使用strings.Builder,直接使用+号性能最差。
- 使用空结构体节省内存
- 对于变量加锁可以使用atomic包,对一段逻辑加锁使用
sync.Mutex。
pprof性能调优
性能分析工具pprof,可视化的性能分析工具。堆内存、CPU、goroutine协程、锁均可以查看使用情况。可以通过分析实际的程序熟悉相关功能,理解基本原理,后续能够更好地解决性能问题,其流程分为建立服务性能评估手段、分析性能数据,定位性能瓶颈、重点优化项改造、优化效果验证。