◆版權聲明:本文出自胖喵~的博客,轉載必須注明出處。
背景
我們的新版App對首頁的列表頁實現了“預加載”功能,即在wifi網絡的情況下,當滑動到第一頁數據的底部的時候,App在后台自動幫你拉取下一分頁的內容,這樣你在滑動的時候就不會出現下拉的“菊花”了,相對來說用戶體驗會好很多。然而對於本次的修改,擔心新的預加載功能會對性能造成影響,導致頁面卡頓,因此我決定對列表頁滑動過程中的FPS進行了一個最基本的評測。
過程
我們使用的是Xcode(mac版的7.3)自帶Instrument中的GPU Driver進行采集,下面我們看看如何使用:
首先右鍵Xcode選擇 “open developer tool”-“instruments”

打開之后,我們首先在頂部設備欄需要選擇“測試的設備”和設備中安裝的要“評測的App”,完成之后,選擇 “GPU Driver”:
這個時候,我們就進入了GPU Driver的操作界面了,左上角的紅色就是開始按鈕,點擊后就開始采集數據。
這里提一點采集時候遇到的坑:當時在使用一台越獄設備的時候,只要點擊紅色開始按鈕,手機就會重啟。這里懷疑是因為越獄的緣故。
采集的過程中,我們可以看到實時的數據:
這里我們關注的列是 “core animation Frames per second”,這個值最高是60,約接近60說明越流暢。
我在評測的過程中,使用iPhone 6s plus的測試結果數據幾乎接近60,但是使用iPhone 4的時候就發現了性能瓶頸:
從下方的圖中我們尅看出,在滑動到要預加載的地方,很明顯會有一個卡頓的現象,導致幀率突然的降低。這個時候我們就可以將這樣的性能問題反饋給開發來解決了。
當然我們也可以橫向的輸出一些測試設備,對比優化前后的數據,例如下面這樣:
測試機型及版本:
Android:
測試版本:預加載版本(92_android.apk)、未做預加載版本(88_android.apk)
測試機型:高(Android 6.0 Nexus 5)、中(Android 4.4.4 oppo A31)、低(Android 4.0.4 三星GT-S7562)
iOS:
測試版本:預加載版本(3315_sign.ipa)、未做預加載版本(3290_sign.ipa)
測試機型:高(iOS 9 iPhone6sp)、中(iOS 8 iPhone5s)、低(iOS 7 iPhone4)
測試結果數據:
這樣是不是就更加直觀明了了。