|
利用RealView Profiler工具進(jìn)行軟件代碼優(yōu)化.pdf
簡介
電子產(chǎn)品市場的競爭呈日益加劇之勢,這就意味著,加快產(chǎn)品投放市場的步伐、提升系統(tǒng)的復(fù)雜性已經(jīng)成為制勝的關(guān)鍵因素。
在加快產(chǎn)品面市的同時更為迅速地增加產(chǎn)品功能、提高產(chǎn)品質(zhì)量正是眾多公司目前面臨的挑戰(zhàn)。因此,能夠精準(zhǔn)探識系統(tǒng)性能的工具就成了必不可少的要素。
要實(shí)現(xiàn)這些目標(biāo),其中重要的一環(huán)就是軟件優(yōu)化。即使將軟件性能優(yōu)化小小的5%,也可由此獲得足夠的系統(tǒng)帶寬,用以增加新的功能,從而增強(qiáng)產(chǎn)品的市場競爭力。軟件優(yōu)化應(yīng)從獲益最大之處開始,這是人所共知之事;然而,為了確定起點(diǎn),開發(fā)者需要有關(guān)其代碼性能的詳細(xì)反饋信息。
確定提升性能的切入點(diǎn)
那么,如何確定代碼瓶頸呢?通常情況下,只有等到項(xiàng)目功能齊備并整合完畢后,工程部門才能在開發(fā)周期中安排出性能調(diào)試時間。同時,由于時間往往非常緊迫,要發(fā)現(xiàn)性能未達(dá)到要求絕非易事。
如果能令工程師更為方便地考察代碼或R O M占用量與性能之間的權(quán)衡,就能確保其做出正確的權(quán)衡,這對解決問題大有裨益。
基于反映終端用戶如何運(yùn)行應(yīng)用程序的使用場景,A R M推出的R e a l V i e w Profiler能夠?qū)⑾到y(tǒng)行為中存在的瓶頸以圖形方式突顯出來。
不僅如此,Profiler還能準(zhǔn)確顯現(xiàn)這些瓶頸與源代碼之間的聯(lián)系,由此可以對編譯優(yōu)化或源代碼做出適當(dāng)更改。有關(guān)應(yīng)用程序性能的信息中包含各個函數(shù)所耗時間(包括有關(guān)函數(shù)間關(guān)系的統(tǒng)計(jì)數(shù)據(jù))以及內(nèi)存存取次數(shù)、延遲次數(shù)和代碼覆蓋等。
優(yōu)化方法
RealView系列工具提供了兩種主要的應(yīng)用程序優(yōu)化方法。最快的方法就是通過編譯器指令進(jìn)行優(yōu)化。
比如,在最基礎(chǔ)的層次,可通過一個特定目標(biāo)實(shí)現(xiàn)整個應(yīng)用程序的優(yōu)化。若要提升程序性能而無需顧及程序大小,開發(fā)者可選用編譯器設(shè)置中的“-O t i m e”選項(xiàng)。不過,如果開發(fā)者希望進(jìn)一步細(xì)調(diào)編譯器優(yōu)化選項(xiàng),也可通過多種方式對特定函數(shù)進(jìn)行優(yōu)化。
第二種方式是通過調(diào)試或重寫軟件進(jìn)行優(yōu)化。盡管這種方法的應(yīng)用范圍是編譯器所不能企及的,但是卻更為耗時,因此必須了解將其用在何處才最有利。
確定是需要重寫整個函數(shù)還是僅需調(diào)整幾行代碼時,有關(guān)每行代碼所耗時間的信息可能十分有用。軟件開發(fā)者可通過RealView Profiler中的調(diào)用鏈視圖,發(fā)現(xiàn)執(zhí)行耗時最長的子函數(shù)及父函數(shù),從而提高優(yōu)化效率。
在代碼視圖中逐行分析代碼性能就會發(fā)現(xiàn)不必更改整個函數(shù)、僅需更改幾行代碼之處。
比如,如果某個函數(shù)所耗時間的大部分實(shí)際上是用在某個循環(huán)所上,軟件開發(fā)者就可集中分析該循環(huán),忽略該函數(shù)的其他部分,從而大量節(jié)省時間。 |