1. 程式人生 > >iOS效能檢測之Instrunments - 幾種常用工具簡單介紹

iOS效能檢測之Instrunments - 幾種常用工具簡單介紹

Instrunments:

沒錯,就是這貨,很多人平時開發可能不一定會用到這個,但我要說的是,學會使用它,會讓你加分不少哦

先來一張一覽圖:

兩種方式都行。

2、今天主要介紹一下我常用的3種:Core Animation 、Leaks、Time Profiler

 

開啟方式:

雙擊圖示,會進入到各自介面,然後我們就可以進行下面的工作。 

此外,下面的測試都建議使用真機測試,模擬器會非常不準。其實,上面的工具,很多都適合用真機測試,除了Zombies等少數幾個適合用模擬器測試。

 

第一個:Core Animation(核心動畫) 

Core Animation工具是用來檢測Core Animation效能的,不過我可能比較low,我主要用來看fps(一秒鐘渲染多少幀 Frame Per Second = FPS),也就是滑動時檢視介面是否卡頓。

一般FPS是60左右,過於低的話需要進行優化,當低於45時,使用者一般是可以覺察到卡頓的,當低於20時,卡頓是特別明顯,甚至影響使用了(之前測試過個位數fps,那感覺想讓我摔手機)。

舉例如圖:

當停止不動時,fps為0.開始滑動時,fps會不斷變化。

 

PS:這裡測試介面卡頓,還有另一種更便捷的方法,藉助第三方封裝的一個label,可以在介面實時看到fps,而不需要藉助Instruments。

下載地址:Github地址

第二個:Leaks(記憶體洩露)

這個也比較常用,用來檢視app執行期間,那些程式碼產生記憶體洩露。

記憶體洩露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩露危害可以忽略,但記憶體洩露堆積後果很嚴重,無論多少記憶體,遲早會被佔光。

 

PS:如果找不到,可能移到底部區域了,如下圖:(xcode新版本會這樣佈局)

 

 

其中,綠色勾表示執行正常,沒有記憶體洩露,如果有洩露,會自動顯示❌,下面我找一張有洩露的圖

按照我上面的方式設定完,點選❌,會定位到程式碼處,我們就能看到具體大概到程式碼位置了,然後對應去修改。

PS:這裡我講一點可能很多人沒注意到一個點,就是關於AFNetworking3.0下存在的記憶體洩露。

如果你在每次使用時,都是重新

 

可能就會有這種問題,不管你是直接使用,還是封裝後使用,只要用的時候是每次都申請一下sessionManager,就會有這種問題。

解決辦法就是:對sessionManager進行單例處理,就可以避免。

參考文章戳這裡:

AFNetworking3.x容易出現記憶體洩露的地方

利用Instruments中的Leaks處理記憶體洩露

 

第三個:Time Profiler(時間分析器)

用來檢測app中每個方法所用的時間,並且可以排序,並查找出哪些函式佔用了大量時間。

頁面如下:

我測試等demo內容比較少,所以資料不多,測試的時候,勾選右邊紅框 

 

然後就可以分析程式碼各階段或者具體程式碼分別執行多長時間了。

 

其實其他的工具都有各自的使用場景,這裡我只是簡單介紹了幾種比較常用的,大家有興趣可以深入瞭解一下Instruments的使用場景。。。。

 

Enjoy~~~