效能常見問題
本頁面收集了有關評估和除錯 Flutter 效能的一些常見問題。
- 哪些效能儀表板包含與 Flutter 相關的指標?
- 如何為 Flutter 新增基準測試?
- 有哪些用於捕獲和分析效能指標的工具?
- 我的 Flutter 應用看起來卡頓或斷斷續續。如何解決?
- 哪些昂貴的效能操作需要我注意?
Opacity、Clip.antiAliasWithSaveLayer,或任何會觸發saveLayer的操作ImageFilter- 另請參閱 效能最佳實踐
- 如何知道我的 Flutter 應用在每一幀中哪些小部件被重建了?
- 在 widgets/debug.dart 中將
debugProfileBuildsEnabled設定為 true。 - 或者,修改 widgets/framework.dart 中的
performRebuild函式,使其忽略debugProfileBuildsEnabled並始終呼叫Timeline.startSync(...)/finish。 - 如果您使用 IntelliJ,可以使用圖形化介面檢視此資料。選擇 **Track widget rebuilds**,您的 IDE 將顯示重建的小部件。
- 在 widgets/debug.dart 中將
- 如何查詢目標幀率(顯示器的)?
- 如何解決由於昂貴的 Dart 非同步函式呼叫阻塞 UI 執行緒而導致的動畫效果不佳的問題?
- 使用
compute()方法生成另一個 isolate,如 在後臺解析 JSON 食譜中所示。
- 使用
- 如何確定使用者將下載的 Flutter 應用的包大小?
- 請參閱 測量應用大小
- 如何檢視 Flutter 引擎大小的細分?
- 訪問 二進位制大小儀表板,並將 URL 中的 git hash 替換為 Flutter GitHub commit 中的最新 commit hash。
- 如何擷取正在執行的應用的螢幕截圖並將其匯出為 SKP 檔案?
- 執行
flutter screenshot --type=skia --observatory-uri=... - 注意檢視螢幕截圖的已知問題
- Issue 21237:在真機上不記錄影像。
- 要分析和視覺化 SKP 檔案,請檢視 Skia WASM 偵錯程式。
- 執行
如何從裝置檢索著色器持久快取?
- 在 Android 上,您可以執行以下操作
adb shell run-as <com.your_app_package_name> cp <your_folder> <some_public_folder, e.g., /sdcard> -r adb pull <some_public_folder/your_folder>
- 在 Android 上,您可以執行以下操作
如何在 Fuchsia 中進行跟蹤?
- 請參閱 Fuchsia 跟蹤指南