go学习 | 青训营笔记

66 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

本课堂知识点总结

本次课程主要知识点

  1. 如何编写更简洁清晰的代码
  2. 常用Go语言程序优化手段
  3. 熟悉Go程序性能分析工具
  4. 了解工程中性能优化的原则和流程

主要内容

高质量编程

高质量定义:编写的代码能够达到正确可靠,简洁清晰的目标。

高质量代码需要考虑的因素:各种边界条件是否考虑完备;异常情况处理;稳定性保证;易读易维护。

编程原则

简单性;可读性;生产力

性能优化

前提:满足正确可靠、简洁清晰等质量因素

特点:综合评估,有时候时间效率和空间效率可能对立,即不能同时满足两个条件,有时候牺牲空间提高时间效率有时候牺牲时间减小空间。

性能表现形式:实际数据衡量

性能优化建议:Benchmark;slice预分配内存;map预分配内存;合适的字符串处理方式;空结构体(作为占位符,不占据内存空间);atomic包

性能优化总结:①避免常见的性能陷阱②不一味的追求程序的性能,普遍应用代码③越高级的性能优化手段越容易出现问题④在满足正确可靠、简洁清晰的质量要求的前提下提高程序性能。

性能优化实战

性能调优原则
  1. 依靠数据
  2. 定位最大瓶颈
  3. 不要过早优化
  4. 不要过度优化
性能分析工具pprof

功能简介:

image.png

pprof-排查实战
  1. 搭建pprof实战项目
  2. 浏览器查看指标
  3. CPU,查看程序占用资源
  4. Heap—堆内存,查看内存占用
  5. goroutine-协程:查看内存是否有泄漏
  6. mutex-锁:查看有问题的方法及方法占用的时间,如果不满足要求可以进行优化或删除
  7. block-阻塞:查看阻塞点,找到实际的代码并优化性能

小结

image.png

总结

通过对影响性能的一些因素进行分析,得出提高性能的方法,利用性能分析工具pprof判断影响性能的代码,使程序员可以对低质量代码进行优化删除等操作。