最佳化編譯器
编译器在编译代码时对代码进行等效转换以换取一些特性的提升或降低的机制 / 維基百科,自由的 encyclopedia
在電腦領域中,最佳化編譯器是一種試圖將程式的某種屬性最大化或者最小化的編譯器。一般而言,受影響的屬性包括了電腦程式的大小、執行時間以及主記憶體占用,不同的最佳化編譯器會根據各自的著重點,對程式做出一定變換或者在不影響執行結果的情況下修改程式的結構,使得這些屬性更貼近理論上的最佳值。
最佳化編譯器的核心是程式最佳化變換(optimizing transformations),該類演算法的目的是將原有程式,替換成資源消耗更低、執行時間更短,但語意上與原有程式等價的新程式。這些演算法有一部分是NP完全的,甚至是不可判定的。與此同時,一些演算法的最佳化能力也有可能受到編譯時長限制(如即時編譯)、程式開發機器的效能等問題所影響,因此編譯器的開發者在設計最佳化演算法時,需要考慮到這些因素並加以權衡。也是由於這些因素,鮮有程式在最佳化以後是真正做到最佳的。[1]
足夠智慧型的最佳化編譯器,因為能夠自動化各種最佳化技巧的應用,對於大幅提升軟體開發效率有著莫大的重要性。