iOS 性能優(yōu)化 Instruments 檢測(cè) App 耗電量實(shí)戰(zhàn)

? ? 資本需求推動(dòng)開(kāi)發(fā)輪子。上個(gè)月,接收到用戶反饋,用著我們的 App,尤其是物流模塊的司機(jī)端耗電量特別大,看下有什么辦法可以進(jìn)行 iOS 性能優(yōu)化?從問(wèn)題看,只能猜測(cè)到 CPU 開(kāi)銷(xiāo)比較大或者地理位置獲取時(shí)候比較耗電。我們一起去敲敲輪子,哪里需要修補(bǔ)下。

Energy Log

? ? 需求來(lái)了,我們帶上?Xcode?Instruments 工具一起上!操作過(guò)程 Xcode --> Open Developer Tool --> Instruments --> Energy Log 的方式來(lái)打開(kāi)。

Instruments -> Energy

? ? 利用Xcode?Instruments?的 Energy Log,先看下同類(lèi) APP 中的 "58速運(yùn)"?iOS客戶端?,瞧瞧它耗電量主要在什么地方,也猜測(cè)下它怎么進(jìn)行 iOS 性能優(yōu)化的。具體按如下操作。

? ? 1、打開(kāi)手機(jī)設(shè)置,點(diǎn)擊 "開(kāi)發(fā)者",選中 Logging。

? ? 注意(Quote Developer.apple.com)

? ? 要查看開(kāi)發(fā)人員設(shè)置(下圖的"開(kāi)發(fā)者"),您必須配置設(shè)備以進(jìn)行開(kāi)發(fā),并在 Xcode 或 Instruments 運(yùn)行時(shí)將其插入Mac。如果尚未設(shè)置您的設(shè)備,請(qǐng)參閱配置 Xcode項(xiàng)目以進(jìn)行分發(fā)并在設(shè)備上啟動(dòng)應(yīng)用程序。即使在設(shè)置了設(shè)備之后,當(dāng)設(shè)備重新啟動(dòng)或關(guān)閉時(shí),Developer 設(shè)置也會(huì)消失。要恢復(fù)設(shè)置,請(qǐng)將設(shè)備重新連接到 Xcode 或 Instruments。

開(kāi)發(fā)者Logging

? ? 2、iOS 設(shè)置中的?Instruments?勾選 Energy,并點(diǎn)擊startRecording。然后打開(kāi) "58速運(yùn)" APP 跑起來(lái)。操作五分鐘左右 (具體看你的需要) ,再進(jìn)入手機(jī)設(shè)置點(diǎn)擊 stopRecording。

? ? 1?? 測(cè)量電量操作期間,手機(jī)不能連接數(shù)據(jù)線,這樣確保手機(jī)消耗的是手機(jī)自身的電量,以便進(jìn)行實(shí)際測(cè)量。

? ? 2???啟用能量記錄后,由于 iOS 設(shè)備會(huì)在隱式地記錄與電量相關(guān)的數(shù)據(jù)。由于日志記錄有效,可以全天記錄。即使設(shè)備處于睡眠模式,startRecording狀態(tài)下記錄會(huì)繼續(xù)進(jìn)行。但是,如果設(shè)備的電池完全耗盡或 iOS設(shè)備關(guān)機(jī)后,日志數(shù)據(jù)將會(huì)丟失。

StartRecording

? ? 3、接著,把?iOS 設(shè)備連接 Xcode,并打開(kāi) Instruments 中的 Energy Log,點(diǎn)擊工具欄中 Import Logged Data from Device。導(dǎo)入我們?iOS?性能優(yōu)化中能耗的數(shù)據(jù)。

iOS設(shè)備連接 Xcode

4、Instruments 中可以看到? "58速運(yùn)" 的功耗,圖中可以見(jiàn)到?"58速運(yùn)"的?iOS 客戶端性能優(yōu)化,在 GPS 定位中下了一定的功夫。

58速運(yùn)功耗

? ? 如何優(yōu)化 APP 在設(shè)備上的耗電量

? ?可以從?官方文檔?知道,通過(guò)?Instruments?收集的數(shù)據(jù),需要查找尖峰或其他異常或意外活動(dòng)的區(qū)域。然后,查看這些區(qū)域中的代碼以確定是否可以進(jìn)行改進(jìn)。

? ? Tips: Instruments??的 Energy Log?指示有 0 到 20 的級(jí)別,表示應(yīng)用在任何給定時(shí)間使用了多少電量,值越大表示越耗電。如果 APP 電量使用水平偶爾很高,則并不一定意味著應(yīng)用有問(wèn)題。APP 可能只需要更多的能量來(lái)完成它執(zhí)行的某些任務(wù)。例如,它可以在執(zhí)行復(fù)雜網(wǎng)絡(luò)操作時(shí)使用 GPS 等,而這是有效的電量使用情況。我們應(yīng)該尋找的是尖峰或高能量使用區(qū)域,這些區(qū)域是意外的或可以在更優(yōu)化的時(shí)間執(zhí)行。

? ? 使用其他分析模板和儀器來(lái)測(cè)量能耗

? ? 實(shí)際中很多因素都會(huì)影響 iOS 性能優(yōu)化中的能耗。雖然?Energy Log?分析模板可以分析一系列統(tǒng)計(jì)信息,但您可以使用其他分析模板和工具來(lái)檢查和評(píng)估應(yīng)用程序的能源影響。 比如下面?iOS?性能優(yōu)化常用工具?Instruments 中。

活動(dòng)監(jiān)視器分析模板。使用此模板可以監(jiān)視整體CPU,磁盤(pán)I / O和網(wǎng)絡(luò)使用情況。
核心動(dòng)畫(huà)分析模板。使用此模板可以測(cè)量圖形性能和CPU使用率。啟用模板 Core Animation 的Flash Updated Regions 設(shè)置,以查看應(yīng)用中發(fā)生的每個(gè)屏幕更新,并觀察不必要或意外的更新。
時(shí)間分析器分析模板。使用此模板對(duì)正在運(yùn)行的進(jìn)程執(zhí)行低開(kāi)銷(xiāo)的基于時(shí)間的采樣。Time Profiler 監(jiān)視應(yīng)用程序中正在運(yùn)行的線程,并定期采樣。為每個(gè)樣本收集完整的回溯,允許您深入查看樣本,以準(zhǔn)確找到代碼中花費(fèi)大量時(shí)間的位置。

? ? ? ???Was this help article useful? Send feedback.

? ? 參考鏈接:

? ? ? ? ?Apple Developer 文檔 - 性能優(yōu)化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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