这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
本课堂知识点总结
本次课程主要知识点
- 如何编写更简洁清晰的代码
- 常用Go语言程序优化手段
- 熟悉Go程序性能分析工具
- 了解工程中性能优化的原则和流程
主要内容
高质量编程
高质量定义:编写的代码能够达到正确可靠,简洁清晰的目标。
高质量代码需要考虑的因素:各种边界条件是否考虑完备;异常情况处理;稳定性保证;易读易维护。
编程原则
简单性;可读性;生产力
性能优化
前提:满足正确可靠、简洁清晰等质量因素
特点:综合评估,有时候时间效率和空间效率可能对立,即不能同时满足两个条件,有时候牺牲空间提高时间效率有时候牺牲时间减小空间。
性能表现形式:实际数据衡量
性能优化建议:Benchmark;slice预分配内存;map预分配内存;合适的字符串处理方式;空结构体(作为占位符,不占据内存空间);atomic包
性能优化总结:①避免常见的性能陷阱②不一味的追求程序的性能,普遍应用代码③越高级的性能优化手段越容易出现问题④在满足正确可靠、简洁清晰的质量要求的前提下提高程序性能。
性能优化实战
性能调优原则
- 依靠数据
- 定位最大瓶颈
- 不要过早优化
- 不要过度优化
性能分析工具pprof
功能简介:
pprof-排查实战
- 搭建pprof实战项目
- 浏览器查看指标
- CPU,查看程序占用资源
- Heap—堆内存,查看内存占用
- goroutine-协程:查看内存是否有泄漏
- mutex-锁:查看有问题的方法及方法占用的时间,如果不满足要求可以进行优化或删除
- block-阻塞:查看阻塞点,找到实际的代码并优化性能
小结
总结
通过对影响性能的一些因素进行分析,得出提高性能的方法,利用性能分析工具pprof判断影响性能的代码,使程序员可以对低质量代码进行优化删除等操作。