在最高层次中,软件的效率取决于两个主要因素的效率:
1、设计效率 这与程序的高层设计有关。解决这一层次的性能问题需要理解程序的大体构造。在相当大的范围内,这是与语言无关的。任何编码效率都无法掩盖低劣的设计
2、编码效率 中、小型的实现问题属于这种情况。解决这一类性能问题通常做局部修改。例如,要把常量表达式放在循环的外面以防止多余的计算。
还可以把这个高层次划分进一步分为更细的子题
设计效率可进一步分为两项
(1)算法和数据结构
(2)程序分解 这包括把全部任务分解成相关的子任务、对象层次、函数、数据和函数流程。这是程序设计的高层设计,包括组件设计和组件与组件间的通信。仅包括一个组件的程序是很少见的。典型的Web应用程序至少要和Web服务器、TCP嵌套字及数据库交互。在涉及跨越这些组件间的每一API层时,就会存在效率陷阱。
编码效率可以划分为四项:
(1)语言结构
(2)系统体系结构
(3)库
(4)编译器优化