ARM程序設計優(yōu)化策略與技術(shù)
程序優(yōu)化是指軟件編程結束后,利用軟件開(kāi)發(fā)工具對程序進(jìn)行調整和改進(jìn),讓程序充分利用資源, 提高運行效率, 縮減代碼尺寸的過(guò)程。按照優(yōu)化的側重點(diǎn)不同, 程序優(yōu)化可分為運行速度優(yōu)化和代碼尺寸優(yōu)化。
運行速度優(yōu)化是指在充分掌握軟硬件特性的基礎上, 通過(guò)應用程序結構調整等手段來(lái)降低完成指定任務(wù)所需執行的指令數。在同一個(gè)處理器上, 經(jīng)過(guò)速度優(yōu)化的程序比未經(jīng)優(yōu)化的程序在完成指定任務(wù)時(shí)所需的時(shí)間更短,即前者比后者具有更高的運行效率。代碼尺寸優(yōu)化是指,采取措施使應用程序在能夠正確完成所需功能的前提下, 盡可能減少程序的代碼量。
然而在實(shí)際的程序設計過(guò)程中,程序優(yōu)化的兩個(gè)目標(運行速度和代碼大?。?nbsp;通常是互相矛盾的。為了提高程序運行效率,往往要以犧牲存儲空間、增加代碼量為代價(jià), 例如程序設計中經(jīng)常使用的以查表代替計算、循環(huán)展開(kāi)等方法就容易導致程序代碼量增加。而為了減少程序代碼量、壓縮存儲器空間,可能又要以降低程序運行效率為代價(jià)。因此, 在對程序實(shí)施優(yōu)化之前, 應先根據實(shí)際需求確定相應的策略。在處理器資源緊張的情況下, 應著(zhù)重考慮運行速度優(yōu)化;而在存儲器資源使用受限的情況下, 則應優(yōu)先考慮代碼尺寸的優(yōu)化。
1 程序運行速度優(yōu)化
程序運行速度優(yōu)化的方法可分為以下幾大類(lèi)。
1.1 通用的優(yōu)化方法
(1)減小運算強度
利用左/ 右移位操作代替乘/ 除2 運算:通常需要乘以或除以2 的冪次方都可以通過(guò)左移或右移n 位來(lái)完成。實(shí)際上乘以任何一個(gè)整數都可以用移位和加法來(lái)代替乘法。ARM 7 中加法和移位可以通過(guò)一條指令來(lái)完成,且執行時(shí)間少于乘法指令。例如: i = i
評論