開發好朋友 — Instruments

Ken Lee
4 min readAug 7, 2019

--

因應情人節

當我們費盡心血完成一個App後,使用者打開來,一下閃退、一下當機、一下手機發燙、一下沒電……,那麼我們的App肯定會出現「給一星都嫌多」這類評論,但這明明是我們嘔心瀝血之作,怎麼預防被這樣糟蹋呢?

這時候,請歡迎我們的好朋友 — Instruments!

Instruments提供我們非常多功能,有些模擬機就可以使用,但有些需要接上實機才能使用!

Instruments Version 10.2.1

使用Time Profiler可以紀錄CPU的使用程度,而Leaks則是幫我們檢查是否有Memory leaks,其他功能可以自己玩玩看。

其實Xcode本身就可以找到執行時CPU、RAM、Disk、Network的使用程度的畫面。再按右上角的「Profile in instruments」即可以把資料帶往Instruments。

Xcode

這次我是選用Time Profiler,可以觀測CPU使用程度。

在Xcode中點選Profile,執行Instruments。

按下Profile

選擇Time Profiler後,就會出現以下畫面:

介面

按下左上角的紅色按鈕後就會開始執行App!

按下錄製按鈕

在錄製過程中,把要測試的過程操作一遍之後,按下停止。這時候Instruments就會把紀錄的資料呈現給出來。
介面下方面板也記錄了各部分的使用比例,可以依照巢狀點開找下去。右下方的區塊則顯示該部分中,最吃重的地方。

資料記錄

如果是標示藍底白色小人,即是我們自己寫的部分。

小白人表示是我們自己寫的部分

想要看我們到底怎麼寫的,可以寫到效能那麼差,只要連點兩下,就可以直接看到程式碼,不用回去Xcode找喔!同時也會標示出,到底哪些地方消耗多少比例的資源。

標示消耗資源的示意圖

而只要找到造成高CPU使用率的原因,就可以嘗試去修正我們的程式碼啦!

至於Leak的方法也類似,可以幫助我們找到造成效能低落的原因。
但不論何種模式,有時候會發現,原因出在「不明」處。所謂「不明」是指:Instruments只告訴我造成Leak的記憶體位址,或者佔用高CPU的函式並非我所寫,而是底層去呼叫的(所以我不認識他)。這時候就沒辦法直觀地解決了,但至少Instruments提供了一些線索,使我們更能找出效能的問題點。

簡短紀錄一下,自己也還不是非常熟這個工具。不過未來應該會時常用到,到時候有機會再分享更多功能。

如果你喜歡我的文章,請幫我clap幾下,我會很感謝的!

--

--