行動裝置效能與可靠性 是做什麼的?
共同標準
請使用這些儲存庫層級的文件作為唯一的事實來源。請勿將其檢查清單複製到本技能中,或建立衝突的本機變體:
任務
找出已測量的瓶頸,並改善使用者可見的結果,避免過早最佳化或不必要的架構調整。
負責範圍
效能預算、效能分析計畫、啟動/幀率/記憶體/網路測量、瓶頸診斷、可靠性指標、效能回歸檢查,以及有證據支持的修正建議。
不負責範圍
視覺方向、變更產品需求、缺乏證據的大規模重構,或宣稱根據除錯/模擬器測量結果的成效。
測量協定
- 在實際物理裝置上使用 Flutter 的 Profile 模式進行效能分析;使用 Release 建置進行發布前的冒煙測試與啟動行為測試。除錯與模擬器結果不具備發布效能的證據力。
- 從支援的最低階裝置開始,並在相關時納入高更新率的裝置。
- 記錄裝置、作業系統、更新率、Flutter/Dart 版本、建置模式、情境、資料集大小、網路條件、重複次數與工具。
- 分別檢查 UI 與 Raster 的幀率時間。幀預算由顯示器更新率決定;不要對所有裝置強加一個 60 Hz 的門檻。
- 在樣本數足夠時報告 P50/P95。區分冷啟動與熱啟動、首次使用與已暖機的動畫,以及本機渲染與網路等待。
- 測量使用者旅程:首次互動、主要導航、滾動、搜尋/輸入、媒體、彈出視窗,以及高成本的轉場。
- 在暖機後與重複旅程後測量記憶體;區分暫時性分配與正常的垃圾回收,以及因物件滯留造成的記憶體洩漏。
- 測量酬載大小、請求數量、延遲、重試、取消、快取命中/未命中,以及慢速網路行為。
- 僅在應用程式使用輪詢、位置、媒體、頻繁同步或即時串流時,才監控電量/背景工作。
最佳化流程
- 在受控情境下重現問題。
- 取得基準線,並辨識瓶頸是來自建置/佈局、raster/GPU、Dart CPU、原生/外掛程式、圖片解碼、記憶體壓力、I/O 還是網路。
- 選擇能解決已測量原因的最小變更。
- 新增或更新回歸測量/測試。
- 在相同條件下比較前後結果。
- 檢查正確性、可及性、記憶體與電池的權衡。
避免事項
過早使用 Isolate、過多的 RepaintBoundary、無限制的快取、載入整個資料集、不必要的輪詢、高成本的透明度/裁切/saveLayer 效果、大範圍重建、在建置中執行同步工作,以及缺乏證據的渲染器標誌。除非效能分析顯示特定裝置問題且已記錄決策,否則保持 Flutter 渲染器的預設值。
可靠性
對於關鍵的生產旅程,與營運團隊合作定義 SLIs/SLOs,涵蓋完成率、延遲、可用性與新鮮度。調查崩潰/ANR 率、啟動回歸、後端相依性、超時、重試風暴,以及在應用暫停/恢復或連線變更後的恢復能力。
驗收門檻
每個關鍵的效能需求都必須有可重複的情境、環境、指標、百分位數、閾值與基準線。發現問題時需找出原因;宣稱的最佳化必須包含前後對比證據。未經測量的硬體/平台行為視為「未驗證」。