1.渐进复杂度和大O符号
- 大O表示法
- 均摊时间复杂度分析
2.度量什么?该如何度量
- 定义目标:(优化目标,延迟/响应时间、吞吐量、内存使用、IO绑定或CPU绑定:性能与IO有关还是与CPU有关、耗电量、数据聚合)
- 度量
- 找到瓶颈
- 做有根据的猜测
- 优化
- 评估
- 重构
3.了解代码和热点
- 插桩型剖析器
- 采样型剖析器
4.微基准测试(Google Benchmark https://github.com/google/benchmark)
- 优先使用剖析器找到需要调整的热点
- 将之与其他代码分开,并新建一个孤立的微基准测试
- 优化该基准测试
- 将优化后的代码集成到原先代码中,并再次度量,查看该代码在更全面的上下文下运行时,优化是否与其他的输入有关