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