Go性能优化和性能调优| 青训营笔记

133 阅读1分钟

性能优化建议

简介

  • 性能优化的前提是满足正确可靠、简洁清晰等质量因素
  • 性能优化是综合评估,有时候时间效率和空间效率可能对立
  • 针对Go语言特性,介绍Go相关的性能优化建议

性能优化建议 - Benchmark

如何使用

  • 性能表现需要实际数据衡量
  • Go语言提供了支持基准性能测试的benchmark工具

image.png

image.png

性能优化建议 - Slice

slice与分配内存

  • 尽可能在使用make()初始化切片时提供容量信息

image.png

image.png

image.png

性能优化建议-Map

map预分配内存

image.png

  • 不断向map中添加元素的操作会被触发map的扩容
  • 提前分配好内存可以减少内存拷贝和Rehash的消耗
  • 建议根据实际需求提前预估好需要的空间

性能优化建议-字符串处理

使用string.Builder

  • 常见的字符串拼接方式

image.png

image.png

image.png

性能优化建议-空结构体

image.png

性能优化建议 - atomic包

image.png

image.png

小结

  • 避免常见的性能陷阱可以保证大部分程序的性能
  • 普通应用代码,不要一味地追求程序的性能
  • 越高级的性能优化手段越容易出现问题
  • 在满足正确可靠、简洁清晰的质量要求的前提下提高程序性能