## 程序性能分析
下图展示了一个程序的性能提升过程, 该程序的作用是对三维空间中n个物体的运动进行仿真。从图中可以看出, 一个程序可以从多方面进行性能提升,而其中算法和数据结构的选择又显得尤为重要。
![](https://box.kancloud.cn/2015-08-24_55dac9d015194.png)
从设计层面提升程序性能:
1. 问题定义。良好的问题定义可以有效减少程序运行时间和程序长度。
2. 系统结构。将大型系统分解成模块,也许是决定其性能的最重要的单个因素。
3. 算法和数据结构。这个不用说了。
4. 代码调优。针对代码本身的改进。
5. 系统软件。有时候改变系统所基于的软件比改变系统本身更容易。
6. 硬件。更快的硬件可以提高系统的性能。
深入阅读:Butler Lampson的“Hints for Computer System Design”, 该论文特别适合于集成硬件和软件的计算机系统设计。