程式優化

修改軟體以提高效率或性能的過程。

在電腦科學中,程式優化代碼優化軟體優化是修改軟體系統以使其某些方面運行得更高效或使用更少資源的過程。[1] 一般來說,電腦程式可以被優化以更快速執行,或減少記憶體存儲或其他資源的使用,或者降低功耗。

概述

編輯

雖然「優化」(Optimization)一詞源自「最佳」(Optimum)[2],但在實際操作中實現最佳化的系統極為罕見,這通常被稱為超優化(Superoptimization)。程式優化通常專注於針對特定的品質指標進行改進,而非讓系統在所有方面達到最佳化。這往往導致取捨,提升某一指標可能會以犧牲另一指標為代價。一個常見的例子是空間與時間的權衡(Space-time tradeoff),透過增加記憶體使用量來縮短程式執行時間。相反地,在記憶體受限的情況下,工程師可能會選擇較慢的演算法以節省空間。幾乎沒有單一設計能在所有情況下表現出色,因此工程師必須根據應用的實際需求優先考慮最相關的屬性。

此外,實現最佳化通常需要付出不成比例的努力,與所獲得的效益不符。因此,優化過程通常在達到足夠的改進後就會停止,而不會追求完美。幸運的是,在優化過程的早期,通常可以實現顯著的改進,這使得優化一般可以在進入收益遞減階段之前停止。

參考

編輯
  1. ^ Robert Sedgewick, Algorithms, 1984, p. 84.
  2. ^ Antoniou, Andreas; Lu, Wu-Sheng. Practical Optimization (PDF) 2nd. Springer. 2021: 1 (英語).