性能之能耗

設(shè)備中的每個(gè)硬件都會(huì)消耗能耗,而最大的消費(fèi)者就是CPU。應(yīng)用計(jì)算越多,消耗的電量越多。在完成相同的操作,老一代的設(shè)備會(huì)消耗更多的電量。

CPU

計(jì)算量的消耗取決于不同的因素

* 對數(shù)據(jù)的處理(例如:對文本進(jìn)行格式化)
* 待處理的數(shù)據(jù)大小—更大的顯示屏允許軟件在單個(gè)視圖中展示更多的信息,但這也意味著要處理更多的數(shù)據(jù)
* 處理數(shù)據(jù)的算法和數(shù)據(jù)結(jié)構(gòu)
* 執(zhí)行更新次數(shù),尤其是在數(shù)據(jù)更新后,觸發(fā)應(yīng)用的狀態(tài)或UI進(jìn)行更新

推薦的做法

* 針對不同的情況選擇優(yōu)化算法
* 如果應(yīng)用從服務(wù)器接收數(shù)據(jù),盡量減少需要在客戶端進(jìn)行的處理
* 優(yōu)化靜態(tài)編譯處理,例如UITableview渲染一組記錄時(shí),不建議一次性全部顯示或者快速滾動(dòng)時(shí)立即載入記錄,而是推遲到滾動(dòng)速度降到一定的閾值再顯示合理的條數(shù)

網(wǎng)絡(luò)

智能的網(wǎng)絡(luò)訪問管理可以讓應(yīng)用響應(yīng)得更快,也助于延長電池壽命。
因此我們需要:
* 在進(jìn)行任何網(wǎng)絡(luò)操作之前,先檢查合適的網(wǎng)絡(luò)是否可用
* 持續(xù)監(jiān)視網(wǎng)絡(luò)的可用性,并在連接狀態(tài)發(fā)生變化時(shí)給予適當(dāng)?shù)姆答?/p>

定位

 * 關(guān)閉無關(guān)緊要的特性
 * 后臺(tái)定位時(shí),每當(dāng)收到更新后,都會(huì)喚醒線程和計(jì)時(shí)器
 * 在其他應(yīng)用程序需要更多資源時(shí),后臺(tái)的應(yīng)用可能會(huì)被關(guān)閉。
   在這種情況下,需要重新初始化監(jiān)聽,可以通過application:didFinishLaunchingWithOptions:方法會(huì)收到鍵值為UIApplicationLaunchOptionsLocationKey的條目

屏幕

屏幕越大也會(huì)費(fèi)電。
* 合理使用動(dòng)畫
* 視頻播放

最佳實(shí)踐

* 最小化硬件使用。換句話,盡可能晚地與硬件打交道,并且一旦完成任務(wù)立即結(jié)束使用
* 在進(jìn)行密集型任務(wù)前,檢查電池電量和充電狀態(tài)
* 在電量低時(shí),提示用戶是否確定要執(zhí)行任務(wù),并在用戶同意后再執(zhí)行
* 或提供設(shè)置的選項(xiàng),允許用戶定義電量的閾值,以便在執(zhí)行密集型操作前提示用戶
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容