ios直播的優(yōu)化總結(jié)

直播大廳 直播列表的刷新 問題: 作為 App 的入口,其高可用十 分重要 用戶點擊進入直播間后,發(fā)現(xiàn)直 播已經(jīng)結(jié)束,體驗不好 主播們及時露出、吸引粉絲的需 求

[5.] 直播大廳 實踐方案: 1、多種刷新機制相結(jié)合 全量刷新 頂部刷新,按滑屏的偏移 局部刷新,對直播流進行分組, 只更新用戶當前界面的直播流; 便于服務(wù)端實施緩存策略 刷新的時間間隔可配置

[6.] 直播大廳 實踐方案: 2、用戶體驗方面 用戶當前正在滑動屏幕時,延遲 刷新當前界面

[7.] 直播大廳 問題:進入直播間速度的優(yōu)化 常見現(xiàn)象: 用戶點擊某個直播之后,進入直 播間頁面較慢 直播間內(nèi)視頻遲遲加載不出來 主播開播后反映人氣一直上不去

[8.] 直播大廳 問題:進入直播間速度的優(yōu)化 原因分析: 獲取視頻流時建立網(wǎng)絡(luò)連接的耗時 直播間內(nèi)業(yè)務(wù)模塊眾多,界面初始 化耗時

[9.] 直播大廳 問題:進入直播間速度的優(yōu)化 解決思路: 在直播間大廳預(yù)先解析視頻流地 址,從而加快獲取視頻數(shù)據(jù) 對房間內(nèi)部分UI模塊使用懶加載 方式,如公聊、用戶列表等

[10.] 直播間 業(yè)務(wù)模塊劃分 音視頻 公聊 消息 直播間 點贊、 分享 …. 禮物 展示 連線

[11.] 直播間 直播間內(nèi)的優(yōu)化 1. 定時器事件調(diào)度 1. 房間內(nèi)長連接消息的處理 1. 動畫展示 1. 主播端的體驗優(yōu)化

[12.] 直播間 統(tǒng)一的定時器事件調(diào)度 獲取直播 狀態(tài) 刷新 公聊 …. 刷新用戶列表 按不同時間間隔 調(diào)度事件 拉取私信 展示 點贊 展示 彈幕 展示 禮物

[13.] 直播間 公聊消息列表刷新 問題現(xiàn)象: 熱門直播間大量的公聊消息使得列 表持續(xù)快速刷新,導(dǎo)致主線程 CPU 占用很高,影響整體界面交互

[14.] 直播間 公聊消息列表刷新 優(yōu)化思路: 將處理長連接消息的 SocketIO庫中的 block 執(zhí)行線程設(shè)置 為非主線程,緩解主線程的 CPU 占用

[15.] 直播間 公聊消息列表刷新 優(yōu)化思路: 實時統(tǒng)計單位時間內(nèi)收到的消息數(shù)目, 在性能較低的機型上,動態(tài)調(diào)整公聊 列表的刷新頻率

[16.] 直播間 公聊消息列表刷新 優(yōu)化思路: 使用隊列暫存消息,每條公聊消息到來 時不直接刷新列表 批量的 pop 隊列中的消息,只保留最 近收到的一些消息進行滾動刷新

[17.] 直播間 公聊消息列表刷新 優(yōu)化效果: 熱門直播間內(nèi) FPS 從最初的10上升至 20以上,界面卡頓明顯改善

[18.] 直播間 問題: 大量的禮物動畫如何進行流暢的展示 優(yōu)化思路: 根據(jù)禮物類型,使用不同的隊列存放待 展示的禮物消息,隊列區(qū)分優(yōu)先級 使用內(nèi)存池,緩存點贊和彈幕中執(zhí)行動 畫的 view/layer,以重復(fù)使用 全屏動畫都使用 Core Animation動畫, 取代 Gif 動畫

[19.] 直播間 問題: 大量的禮物動畫如何進行流暢的展示 測試優(yōu)化效果: 測試環(huán)境中,服務(wù)端配置自動送禮腳本, 對各種送禮動畫進行壓力測試 和其他業(yè)務(wù)模塊結(jié)合起來測試,比如開 啟美顏和連麥等功能,測試整體界面的 流暢性

[20.] 直播間 問題: 大量的禮物動畫如何進行流暢的展示 測試優(yōu)化效果: 導(dǎo)入線上熱門直播間的廣播消息數(shù)據(jù), 進行真實環(huán)境的測試

[21.] 直播間 直播端體驗的優(yōu)化 問題:主播直播了很久,好不容易上了熱門,發(fā)生App 崩潰如何 處理 解決思路: 開始直播時保存推流地址等信息 App 崩潰后,再次啟動可以繼續(xù)直播 恢復(fù)效果上相當于一次切后臺的操作

[22.] 直播間 直播端體驗的優(yōu)化 問題:如何應(yīng)對運營活動時的房 間內(nèi)的消息壓力 問題現(xiàn)象: 短時間內(nèi)服務(wù)器廣播消息壓力 非常大 公聊和禮物消息持續(xù)刷屏,主 播直播嚴重受干擾

[23.] 直播間 直播端體驗的優(yōu)化 問題:如何應(yīng)對運營活動時的房間內(nèi) 的消息壓力 解決思路: 服務(wù)降級,下發(fā)限制客戶端公聊 和禮物消息發(fā)送頻率的命令 限制點贊和部分禮物的動畫展示

[24.] 直播間 減輕服務(wù)端并發(fā)請求方面的優(yōu)化 問題場景: 用戶關(guān)注關(guān)系的拉取 ? 每次進入直播間,都需要請求用戶列 表中的關(guān)注關(guān)系 ? 主播結(jié)束直播時,用戶都需要拉取和 主播的關(guān)注關(guān)系 推送消息 ? 明星用戶開播全量推送時,大量客戶 端同時拉取大廳直播列表

[25.] 直播間 減輕服務(wù)端并發(fā)請求方面的優(yōu)化 解決思路: 對用戶profile、關(guān)注關(guān)系等信息進 行緩存 收到直播推送時,不立即刷新直播列 表,延遲到退出直播間后再啟動大廳 刷新機制

[26.] 直播間 客戶端首次啟動方面的優(yōu)化 問題場景: 用戶安裝映客后首次啟動App,點擊登錄按鈕出現(xiàn)卡頓 原因: 客戶端啟動時,需要下載大量的圖片資源,網(wǎng)絡(luò)請求和文件 操作頻繁 解決思路: 對部分禮物和等級圖標資源進行內(nèi)置,增量下載更新

[27.] 私信消息 私信消息模塊的整體設(shè)計 私信消息 UI API 接 口 Model Cache Database 操作 通知

[28.] 私信消息 優(yōu)化點:私信聊天頁面的打開速度和消息瀏覽的體驗 思路: 內(nèi)存中只緩存少量的幾十條數(shù)據(jù)用于展示,滑屏瀏覽 時,動態(tài)更新緩存內(nèi)容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。