高性能IOS應(yīng)用開發(fā)-移動應(yīng)用的性能

移動應(yīng)用的性能

1、定義性能

從技術(shù)角度來說,性能是一個很模糊的概念:消耗的內(nèi)存???節(jié)約了流量?應(yīng)用使用流暢?省電?總之,高性能有多重的含義和解釋。

2、性能指標(biāo)

內(nèi)存

內(nèi)存涉及運行應(yīng)用所需的RAM最小值,以及應(yīng)用消耗的內(nèi)存平均值和峰值。最小內(nèi)存值會嚴(yán)重限制硬件,而更高的內(nèi)存平均值和峰值意味著更多的后臺應(yīng)用會被強制關(guān)閉。同事還要確保沒有泄露內(nèi)存,隨著時間流逝而持續(xù)增長的內(nèi)存消耗意味著,應(yīng)用很可能會因為內(nèi)存不足的異常而崩潰。

電量消耗

在編寫高性能代碼時,電量消耗時一個需要重點考慮的重要因素。電量消耗不僅僅與計算CPU周期有關(guān),還包括高效地使用硬件。除了要實現(xiàn)電量消耗最小化,還要確保不會影響用戶體驗。

初始化時間

用戶在啟動應(yīng)用的時候,應(yīng)用執(zhí)行任務(wù)所消耗的時間就是應(yīng)用的初始化時間。通常我們要控制好這個時間,不能讓用戶在任務(wù)執(zhí)行時總是等待。

應(yīng)用啟動執(zhí)行的動作:如,檢查應(yīng)用是否為首次啟動,檢查用戶是否登錄....

執(zhí)行速度

一旦啟動應(yīng)用,用戶總是很迫切的希望盡快工作,盡可能短時間處理事情。如上傳圖片時,希望快點上傳。

響應(yīng)速度

通常用戶選擇一款應(yīng)用,基本都會選擇響應(yīng)速度最快的應(yīng)用。即響應(yīng)用戶交互的速度。

本地存儲

提供離線瀏覽的能力,如在無網(wǎng)絡(luò)或者設(shè)備離線情況下查看歷史郵件,離線視頻,離線音頻等。如果應(yīng)用中使用了本地存儲,那么需要一個清除緩存的功能,避免用戶頻繁卸載應(yīng)用。

互操作性

用戶可能會使用多個應(yīng)用完成某個任務(wù),這就需要這些應(yīng)用直接提供互操作的能力。例如,相冊可能需要一個修圖軟件修圖,相冊需要另一個應(yīng)用來剪輯視頻。

網(wǎng)絡(luò)環(huán)境

移動設(shè)備會在不同網(wǎng)絡(luò)環(huán)境下使用,為了確保提供最好的用戶體驗,需要適應(yīng)各種網(wǎng)絡(luò)環(huán)境:如 高速穩(wěn)定,低速穩(wěn)定,高速不穩(wěn)定,低速不穩(wěn)定,無網(wǎng)絡(luò)。

帶寬

人們在不同的網(wǎng)絡(luò)環(huán)境下使用移動設(shè)備,網(wǎng)速從每秒數(shù)千字節(jié)到每秒數(shù)十兆字節(jié)。因此,帶寬的優(yōu)化使用是定義應(yīng)用質(zhì)量的一個關(guān)鍵參數(shù)。

數(shù)據(jù)刷新

數(shù)據(jù)刷新的頻率和每次傳輸?shù)臄?shù)據(jù)量決定數(shù)據(jù)傳輸總量,如果傳輸?shù)臄?shù)據(jù)過大,用戶流量勢必會快速耗盡,流量消耗過快影響用戶體驗。

多用戶支持

提供多用戶添加、更新、切換,如QQ

單點登錄

用戶登錄了一個應(yīng)用,只需要點擊一次,就可以登錄其他的應(yīng)用中。這個過程不僅需要支持跨應(yīng)用的數(shù)據(jù)共享,還需要分享狀態(tài)、跨應(yīng)用同步等。例如,如果用戶注銷了其中的某個應(yīng)用,則通過SSO登錄的所有其他應(yīng)用也要注銷掉。

安全

本地數(shù)據(jù)和功效數(shù)據(jù)加密,保障安全。

崩潰

應(yīng)用可能會崩潰,過度優(yōu)化也會導(dǎo)致崩潰。高性能應(yīng)用應(yīng)盡可能的避免崩潰,還應(yīng)該在崩潰發(fā)生時優(yōu)雅地恢復(fù),尤其是在進(jìn)行某個操作的過程中發(fā)生崩潰時。

應(yīng)用性能分析

1、采樣

是指以一定的周期間隔采集狀態(tài),這通常需 要借助工具。

2、埋點

通過修改代碼,記錄細(xì)節(jié)信息的埋點能夠提供比采樣更精準(zhǔn)的結(jié)果。你既可以在關(guān)鍵部分主動埋點,也可以在性能分析或處理用戶反饋時有針對性埋點,以便解決問題。(因為埋點需要注入額外的代碼,所以它一定會影響應(yīng)用的性能,對內(nèi)存或速度造成損害)。

測量

1、設(shè)置工程和代碼

構(gòu)建與發(fā)布 ( 確保能夠輕松地構(gòu)建和發(fā)布應(yīng)用)

可測試性 ( 確保你的代碼能夠同時在模擬數(shù)據(jù)和真實數(shù)據(jù)之上工作,其中包括能夠模擬真實場景的 隔離環(huán)境)

可跟蹤性( 確保你能夠通過明確問題發(fā)生的位置和代碼行為來處理錯誤)。

2、設(shè)置崩潰報告

Flurry(http://www.furry.com)、Bugly (https://bugly.qq.com/v2/)

3、對應(yīng)用埋點

對應(yīng)用進(jìn)行埋點是了解用戶行為的一個重要步驟,但更重要的目的是識別應(yīng)用的關(guān)鍵路徑。注入特定的代碼以記錄關(guān)鍵指標(biāo)是提升應(yīng)用性能的重要步驟。

4、日志

日志提供了用于在不同級別跟蹤應(yīng)用 的細(xì)節(jié)信息,比如?debug、Verbose、info、warning?和?Error。

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

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

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