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進行單例處理,就可以避免。
參考文章戳這裡:
第三個:Time Profiler(時間分析器)
用來檢測app中每個方法所用的時間,並且可以排序,並查找出哪些函式佔用了大量時間。
頁面如下:
我測試等demo內容比較少,所以資料不多,測試的時候,勾選右邊紅框
然後就可以分析程式碼各階段或者具體程式碼分別執行多長時間了。
其實其他的工具都有各自的使用場景,這裡我只是簡單介紹了幾種比較常用的,大家有興趣可以深入瞭解一下Instruments的使用場景。。。。
Enjoy~~~