1 介绍
通常,使用一个逻辑简单但比较慢的程序比较好。
因为一个快的程序通常:1. 编写时间长;2. 提速不高,难以察觉;3.可以通过硬件升级达到
不同层次优化:
- 建模 - 算法
- 编码 - 程序/过程
- 编译 - 底层 Low-level
- 执行 - 硬件
- ……
2 The Golden Rules of optimization 黄金准则(优化建模——算法)
良好的算法规则:优化程序的最佳和最重要的方法是使用良好的算法
时间复杂度Asymptotic complexity:衡量算法优劣
(但并不总是效率的适当指标,如底层优化)
3 Optimizing compilers 有优化功能的编译器
提高程序到汇编的映射
- 编译器对代码重排序
- 消除轻微效率低下
不足(妨碍优化的因素)
- 内存别名 memory aliasing