為什么要優(yōu)化 iOS 的性能?
當然是為了更好的用戶體驗
做性能優(yōu)化挺麻煩的:
- 有風險
程序能跑铃岔,就不要動
- 費時間
業(yè)務時間很緊張的, “重構(gòu)” 時間也很緊張
- 做優(yōu)化汪疮,本來就很復雜
大腦一片空白。一般人搞不定
- 代碼優(yōu)化毁习,哪里比得上硬件的性能大幅度提升
硬件不值錢智嚷,工程師的時間很燒錢
這些年,蘋果硬件確實是提升顯著
2013年蜓洪,帶著 A7 芯片的 iPhone 5s 發(fā)布時纤勒,iPhone 5s 性能遠超原型機,CPU 處理上快40倍隆檀,圖像處理上快56倍摇天。
資料鏈接: Mac 文化 網(wǎng)站
2016年, iPhone 7 發(fā)布恐仑,性能提升到了120倍泉坐。
具體性能方面,A11 BIONIC號稱其兩顆性能核心就比前代的A10整體快了25%裳仆;四顆效率核心更是比A10提升了70%腕让。整體的CPU性能比A10提升了70%。
資料鏈接:揭秘iPhone X背后的
硬件提升顯著
2017年的果機,性能較2007年的纯丸,提升了200倍偏形。
但是
增強現(xiàn)實功能, AR , 非常耗電
240 fps 1080p 的 Slo-mo 慢動作觉鼻、慢鏡頭俊扭,也是電量殺手
還有 iPhone X 的動話表情(Animoji)
...
并不是每個人的 iPhone 都是最新款,有 A11 這種高級芯片坠陈。
資料鏈接:iPhone 設備市場
所以呢萨惑, 提高 app 的性能,一般從三個方向著手:
沒有閃退
包括應用不會被系統(tǒng)的守護進程 watchdog ,干掉仇矾。
其中一種情況就是庸蔼,app 使用的內(nèi)存過多,就被系統(tǒng) kill 了.交互流暢
省電
測量 app 的性能贮匕, 敢問路在何方姐仅?
拍腦袋,一般沒有什么建設性刻盐。
通過使用工具測量 app 的性能萍嬉,才知道要不要改進,改哪里隙疚。
改進。
再測量磕道,看看改的怎么樣供屉。
測量的工具和方法,一般有
- NSLog / print 方法
- 調(diào)試神器 Instruments
- XCTest 框架下的 measure( ) 方法
(寫過單元測試的同學溺蕉,都了解 )
本文是 CocoaHeads Shanghai 第35期伶丐,sente.ch 公司的開發(fā)者 Marco Scheurer 演講的簡單整理
資料見 GitHub 鏈接