Go的高质量编程与性能调优(3)| 青训营笔记

103 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记。

高质量原则

编写的代码能够达到正确可靠、简介清晰的目标称之为高质量代码。需要考虑各种边界条件是否考虑完备、异常情况处理,稳定性保证、易读易维护。分为简单性、可读性、生产力。

image.png

image.png

性能优化

基准测试工具

go test -bench=. -benchmen
  • 使用slice切片预分配内存,存数据时会优先从缓存取出,减小CPU压力。
  • map预分配内存,提前分配好空间减少内存拷贝和rehash消耗。
  • 字符串处理优先使用strings.Builder,直接使用+号性能最差。
  • 使用空结构体节省内存
  • 对于变量加锁可以使用atomic包,对一段逻辑加锁使用sync.Mutex

pprof性能调优

性能分析工具pprof,可视化的性能分析工具。堆内存、CPU、goroutine协程、锁均可以查看使用情况。可以通过分析实际的程序熟悉相关功能,理解基本原理,后续能够更好地解决性能问题,其流程分为建立服务性能评估手段、分析性能数据,定位性能瓶颈、重点优化项改造、优化效果验证。

image.png