1. 高级设计
- 选择合理的算法和数据结构。
- 消除连续的函数调用。(函数调用会带来相当大的开销,而且妨碍编译器对程序的优化)
- 消除不必要的存储器引用(方法中引入临时变量来保存中间结果)。
3. 低级优化
- 展开循环,降低开销。(展开循环是通过增加每次迭代计算到元素数量,来减少循环的迭代次数,便于指令在流水线中并行)
- 通过使用多个累积变量和重新结合等技术,找到方法提高指令级并行。
- 用功能风格重写条件操作,使得编译采用条件数据传送。(因为现代处理器的分支预测机制会带来预测错误处罚,可以通过一些机制来避免条件分支,来避免分支预测)