技术实践第四期|解读移动开发者日常-性能监控平台应用
簡介:應用性能監控平臺是用來幫助客戶提升應用性能質量和穩定性的重要環節,本人作為一名移動端開發者有著豐富的使用和運維經驗,希望通過本文分享過往的心得和使用經驗,讓我參與開發的U-APM這款產品中,作為借鑒可以在中長期規劃中幫助更多的開發者。
作者:友盟+技術專家 謙翔
一、概述
應用性能監控平臺是用來幫助客戶提升應用性能質量和穩定性的重要環節,本人作為一名移動端開發者有著豐富的使用和運維經驗,希望通過本文分享過往的心得和使用經驗,讓我參與開發的U-APM這款產品中,作為借鑒可以在中長期規劃中幫助更多的開發者。
(以下內容僅作為穩定性監控平臺這類平臺的使用經驗和心得,文中提及平臺僅供參考)
二、產品受眾
1. 了解他們
應用性能監控平臺的使用者往往是站在移動終端最前線的開發者,他們需要關注端的穩定性、用戶性能、體驗等方面。好的工具可以協助他們在日常運維中的工作。
1.1 移動開發者團隊職責構成
此類產品的受眾主要是移動開發者,而移動開發者開發者也會分為前端和客戶端,分別根據自己所使用的技術棧特性進行職責分配,當然跨端技術的出現也讓邊界不再那么清晰。
1.2 移動開發者日常工作
開發者日常的工作職責主要分成兩大部分開發和運維,開發中出現的問題一般可以通過調試環境就可以定位解決,而運維階段,線上的代碼被壓縮混淆加密后變的難以辨認無法直接定位問題。不同系統、運行環境、網絡情況和低質量的代碼則會帶來不可預知的性能問題,運維工作的量化匯報等等。這些都是移動開發者們日常所面臨的困難。
1.3 場景歸納
如果把應用性能監控平臺的使用場景分為上線前和上線后,大致羅列了以上場景。
1.4 應用性能監控平臺
針對以上場景,市面上或者公司內部的應用性能監控平臺絕大部分能夠解決
2. 案例分享
下面我會結合上面提到的場景分享三個案例
2.1 案例1(單設備錯誤排查)
單設備錯誤排查的場景對于值班人/開發者的要求很高,其在于排查時間的緊迫性和對開發鏈路熟悉以及排查工具的完備性等。(此場景常見于重要客戶或領導反饋)
2.2 案例2(性能優化)
2.2.1 優化背景
- 技術棧:React Native
- 優勢:RN 擁有一次編寫三端執行和動態部署和邏輯下發到客戶端的能力,解決客戶端版本審核及更新效率低、三端開發技術方案不一致、三端公共需求存在重復勞動等問題
- 劣勢:RN執行階段可分為RN加載階段和RN運行階段,相應的RN頁面所面臨的性能問題也不盡相同
2.2.2 RN框架加載流程
為了更清晰的了解RN加載階段的問題所在,我們先來分析下RN的加載機制
在進入整個RN頁面的流程中,RN框架加載會經歷以下步驟:
- 包下載及解壓縮:加載時發現本地沒有對應的包文件,會先從服務器上下載并解壓包的文件。
- 獲取初始化引擎:RN預初始引擎的功能,提前創建一個初始化好的引擎并緩存,緩存在退出頁面2分鐘之后釋放。
- 加載業務包:向一個初始化好的引擎中,加載業務的JS代碼。該環節受限于業務JS的大小及設備性能,該加載時間普遍較長。
- 運行業務包:執行業務JS中runApplication()方法,開始渲染Native頁面。該環節受限于業務JS的復雜度及設備性能,如果首次渲染的組件很多,該加載時間會變長。
2.2.3 RN框架常用指標和維度
- RN加載階段的性能優劣,最直觀的感受就是頁面加載耗時
- 所以RN技術在帶來種種優點的同時,也在存在一些性能和體驗問題,這需要一些優化手段和指標來支撐業務的穩定運行
不同的終端技術棧需要結合自身加載和運行的關鍵階段,量身打造適合自己的性能指標和維度。這可以讓開發者監控頁面加載和運行過程的每個環節,進行針對性優化。
2.2.4 優化過程&結果
問題發現:
- 發現以上頁面指標,頁面加載時間(90分位)長時間處于1.2s左右高于要求的標準閾值1s以內
- 參考RN加載流程經過多維度篩查,發現很多用戶是首次訪問該頁面,下載代碼包需要大量耗時,低網絡更是如此,所以我們需要提前用戶下載bundle的時機,還有減少bundle的大小。
解決方案:
- 知道問題所在就好辦多了,我們整理了針對包大小優化,包預下載時間等一系列的優化方案的組合拳,這里就不過多展開。
優化結果:
- 優化結果:頁面加載時間(90分位)減少耗時至0.5s
2.3 案例3(匯報)
匯報工作方式一般分為兩種報告和值班推送的形式,主要將所監控頁面或者業務線重要的性能指標進行實時或定期追蹤同步,方便負責團隊進行下一步行動(比如:優化、錯誤修復等)
網絡促銷日值班場景(某營銷促銷日 ?xxxx.xx.xx)
營銷促銷日前一周
- 匯總各移動端團隊負責的業務
- 羅列各移動端團隊業務所覆蓋的頁面,確認監控是否覆蓋
- 各團隊技術值班負責人確認各技術棧(H5,Native,RN等)數據指標和告警閾值并設置應用性能監控進行定時匯報推送值班群
- 各小組確定值班日安排,實時跟蹤值班群閾值異常情況,并及時響應。
以上是本期干貨內容的介紹,希望友盟+研發團隊撰寫的技術內容可以更好地幫助開發者們解決問題,友盟+將陪伴開發者們一起進步,一起成長。敬請期待下一期內容。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的技术实践第四期|解读移动开发者日常-性能监控平台应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一图看懂云栖大会「云原生」发布
- 下一篇: 量化感知训练实践:实现精度无损的模型压缩