iOS 調試工具,ios調試工具

來源:互聯網
上載者:User

iOS 調試工具,ios調試工具

  • 儀錶

   xcode5 引入了調試儀錶,通過儀錶可以直觀的看出應用的CPU和記憶體佔用量。運行一個程式,點擊儀錶欄。可以發現當程式處於運行狀態時,調試導航面板會以柱狀圖顯示CPU和記憶體佔用量,並隨著應用即時更新佔用量資料。需要注意的是,調試導航面板中的資料是根據應用的硬體計算出來的,蘋果電腦的CPU比iOS裝置更快,如果在iOS模擬器上運行應用,調試導航面板中顯示的CPU贊用量可能非常低,不低於分析效能問題。

  點擊CPU可以在編輯地區開啟CPU佔用量報告。

  •   佔用百分比(Precentage Utilized)

  根據運行應用裝置的CPU核心數顯示CPU佔用比。例如,單核裝置中最大CPU佔用量是100%,而對雙核裝置中是200%,所以應用在單核裝置中的CPU佔用量通常比雙核裝置更高。如果應用處於空閑狀態(進入後台活沒有操作),CPU佔用量會顯示0%。

  •   佔用環比(Utilization Comparison)

  使用環比圖比較應用與系統中其他進程(Process)的CPU佔用百分比。如果應用的CPU佔用百分環比不高,但是運行不通暢,那麼可以從該環形圖中查看Other Processes的佔用百分比。如果裝置中後台啟動並執行其他應用太多 ,就可能導致Other Processes的佔用百分比很高,應用運行速度變慢。

  •   時間-佔用比(Utilization over Time)

  使用折線圖顯示應用CPU佔用量隨已耗用時間變化的過程,以及佔用量在已耗用時間內的峰值和穀值。

  •   線程(Threads)

  顯示應用中每一個線程的時間-佔用比。

  

  接下來我們開啟我們應用 JXTouchTracker ,用手指在應用中繪製線條,手指不要離開螢幕,持續繪製大量線條可以發現應用的CPU佔用比迅速升高-手指在螢幕上移動時,JXDrawView會不斷收到 touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 訊息並調用 drawRect:(CGRect)rect 重繪自己。繪製的線條越多, drawRect:(CGRect)rect 的工作量就越大,CPU佔用比就越高。

  回到吊事導航面板,點擊Memory,開啟記憶體佔用量報告,

  和CPU佔用量報告類似,記憶體佔用量報告直接的顯示了應用記憶體佔用的情況,但是Memery部分(位於最下方)顯示的折線圖可能會讓我們誤解:應用似乎始終佔用了100%的記憶體。實際上,途中將已耗用時間內的佔用峰值作為100%顯示,因此途中y周的最大值與左側High欄中顯示的數值相同都是58.2MB。

  無論開發何種類型的應用,都應該儘可能降低CPU和記憶體佔用量,提高應用的流暢度和使用者體驗。

 

  • Instruments

  從儀錶和佔用量報告中可以簡要分析出應用的效能,但是,如果應用的CPU和記憶體佔用量過高,需要從代碼中尋找效能問題,則可以使用 Instruments ,他提供了比儀錶和佔用量報告更詳細的資料分析。

   Instruments 是一中與Xcode緊密整合的調試工具,可以即時監控並統計應用運行時的各項資料,產生詳細的分析報告。它由若干組件組成,這些組件檢查的事項包括:應用建立了那些對象,每一個方法和函數的CPU佔用量、檔案I/O和網路I/O等。通過使用這些不同的組件,可以找出程式中的效能瓶頸,發現代碼中的問題。

  •  Allocations 組件

   Allocations 組件可以列出應用建立過的全部對此昂,以及這些對象所佔用的記憶體大小。

  當監視某個應用時, Allocations 組件會對這個應用進行效能分析。雖然可以在模擬器上對某個應用進行效能分析,但是在真是的裝置上進行可以得到更精確的資料。

  要對當前開啟的項目執行效能分析,可以按住位於坐上角的 Run 按鈕不放,然後在新出現的快顯視窗中選擇 Profile

  Xcode會啟動 Instruments 。 Instruments 會顯示一個下拉視窗並列出所有可用的組件。選中 Allocations 。之後 Instruments 會啟動應用並開啟 Instruments 的主視窗。

 

 

   Allocations 組件會顯示一張表格,流出應用 執行過的所有記憶體配置。因為資料比較多,所以先過濾,只列出由我們自己編寫的代碼建立的對象。首先在JXDrawView對象上畫若干線條。然後在視窗 Category 查詢方塊中輸入 JXLine 

   Allocations 組件會過濾  Object Summary 表格所顯示的條目,只列出和 JXLine 右端的記憶體配置,即我們自己建立的 JXLine 對象。

   #Persistent 列會顯示某種對象的現存個數。 Persistent Bytes 列會顯示這些現存對象佔用了多少記憶體。 # Total 列會顯示應用運行至今共建立了多少個某種類型的對象(其中包括已經釋放的對象)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.