iOS性能優化 - 耗電優化

耗電來源:

  • CPU處理;
  • 網絡;
  • 定位;
  • 圖像。

如何優化:

1. 儘量下降CPU、GPU功耗;

2. 少用定時器;

3. 優化I/O操做:

  • 儘可能不要頻繁寫入小數據,最好批量一次性寫入;
  • 讀寫大量重要數據時,考慮用dispatch_io,其提供了基於GCD的異步操做文件I/O的API。用dispatch_io系統會優化磁盤訪問;
  • 數據量比較大的,建議使用數據庫(好比SQLite、CoreData)。

4. 網絡優化:

  • 減小、壓縮網絡數據;
  • 若是屢次請求的結果是相同的,儘可能使用緩存;
  • 使用斷點續傳,不然網絡不穩定時可能屢次傳輸相同的內容
  • 網絡不可用時,不要嘗試執行網絡請求;
  • 讓用戶能夠取消長時間運行或者速度很慢的網絡操做,設置合適的超時時間;
  • 批量傳輸,好比,下載視頻流時,不要傳輸很小的數據包,直接下載整個文件或者一大塊一大塊地下載。若是下載廣告,一次性多下載一些,而後再慢慢展現。若是下載電子郵件,一次下載多封,不要一封一封地下載。

5. 定位優化:

  • 若是隻是須要快速肯定用戶位置,最好用CLLocationManagerrequestLocation方法。定位完成後,會自動讓定位硬件斷電;
  • 若是不是導航應用,儘可能不要實時更新位置,定位完畢就關掉定位服務;
  • 儘可能下降定位精度,好比儘可能不要使用精度最高的kCLLocationAccuracyBest
  • 須要後臺定位時,儘可能設置pausesLocationUpdatesAutomaticallyYES,若是用戶不太可能移動的時候系統會自動暫停位置更新;
  • 儘可能不要使startMonitoringSignificantLocationChanges,優先考慮startMonitoringForRegion:(該方法只有用戶位置發生了移動纔會觸發)。

6.硬件檢測優化:

用戶移動、搖晃、傾斜設備時,會產生動做(motion)事件,這些事件由加速度計、陀螺儀、磁力計等硬件檢測。在不須要檢測的場合,應該及時關閉這些硬件。數據庫


iOS性能優化:

相關文章
相關標籤/搜索