这里给出《深入理解计算机系统》一书中第五章关于优化程序性能的一些总结,得出关于如何编写高效代码的很重要的经验教训:
- 高级设计。为遇到的问题选择适当的算法和数据结构。要特别警觉,避免使用那些会渐进地产生糟糕性能的算法或编码技术。
- 基本编码原则。避免限制优化的因素,这样编译器就能产生高效的代码。
- 消除连续的函数调用。在可能时,将计算移到循环外。考虑有选择地妥协程序的模块性以获得更大的效率。
- 消除不必要的存储器引用。引入临时变量来保存中间结果。只有在最后的值计算出来时,才将结果存放到数组或全局变量中。
- 低级优化。
- 展开循环,降低开销,并且使得进一步的优化成为可能。
- 通过使用例如多个累积变量和重新结合等技术,找到方法提高指令级并行。
- 用功能的风格重写条件操作,使得编译采用条件数据传送。