在最高層次中,軟件的效率取決於兩個主要因素的效率:
1、設計效率 這與程序的高層設計有關。解決這一層次的性能問題需要理解程序的大體構造。在相當大的範圍內,這是與語言無關的。任何編碼效率都無法掩蓋低劣的設計
2、編碼效率 中、小型的實現問題屬於這種情況。解決這一類性能問題通常做局部修改。例如,要把常量表達式放在循環的外面以防止多餘的計算。
還可以把這個高層次劃分進一步分爲更細的子題
設計效率可進一步分爲兩項
(1)算法和數據結構
(2)程序分解 這包括把全部任務分解成相關的子任務、對象層次、函數、數據和函數流程。這是程序設計的高層設計,包括組件設計和組件與組件間的通信。僅包括一個組件的程序是很少見的。典型的Web應用程序至少要和Web服務器、TCP嵌套字及數據庫交互。在涉及跨越這些組件間的每一API層時,就會存在效率陷阱。
編碼效率可以劃分爲四項:
(1)語言結構
(2)系統體系結構
(3)庫
(4)編譯器優化