跳至主要內容

效能常見問題

本頁收集了一些關於評估和偵錯 Flutter 效能的常見問題。

  • 我的 Flutter 應用程式看起來卡頓或斷斷續續。我該如何修正?
  • 如何判斷我的 Flutter 應用程式中的哪些 Widget 在每個影格中重建?
    • widgets/debug.dart 中將 debugProfileBuildsEnabled 設定為 true。
    • 或者,變更 widgets/framework.dart 中的 performRebuild 函式以忽略 debugProfileBuildsEnabled 並始終呼叫 Timeline.startSync(...)/finish
    • 如果您使用 IntelliJ,則可以使用此資料的 GUI 檢視。選取「追蹤 Widget 重建」,您的 IDE 會顯示哪些 Widget 正在重建。
  • 如何解決由於昂貴的 Dart 異步函式呼叫阻塞 UI 執行緒而導致的應用程式動畫不良問題?
  • 如何擷取正在執行的應用程式的螢幕快照,並將其匯出為 SKP 檔案?
    • 執行 flutter screenshot --type=skia --observatory-uri=...
    • 請注意,檢視螢幕快照時有一個已知的問題
    • 若要分析和視覺化 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>
  • 如何在 Fuchsia 中執行追蹤?