性能常见问题
本页面收集了有关评估和调试 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 跟踪指南