程序性能分析
设计层面
1.问题定义:良好的问题定义可以避免用户对问题需求的过高估计,良好的错误恢复能力会使编译器运行的稍慢一些,但是通常会由于减少了总的编译次数而缩短总的时间。
2.系统结构:将大型系统分解成模块也许是决定其性能的最重要的单个因数。在构建出整个系统的构架以后,设计者需要完成简单的粗略估算,以确保程序的性能在正确的范围之内。
3.算法和数据结构:
4.代码调优
5.系统软件:有时候改变系统所基于的软件比改变系统本身更容易
6.硬件:
原理
1.如果仅需要较小的加速,就对效果最佳的层面做改进。
决定在某一特定层面着手之前,请先考虑一下所有可能的设计层面,然后选择性价比最高的哪一个,投入最小的精力就可以获得最大加速系数的那个设计层面
2.如果需要较大的加速,就对多个层面做改进。
如果需要大幅加速,必须从各个不同的方向对问题进行深入研究,这通常需要付出巨大的努力。如果在任一设计层面上的改进都独立于其他层面的设计,那么各个层面上的加速系数可以相乘。