性能常见问题解答
此页面收集了一些关于评估和调试 Flutter 性能的常见问题。
- 哪些性能仪表板包含与 Flutter 相关的指标?
- 如何向 Flutter 添加基准测试?
- 捕获和分析性能指标的一些工具是什么?
- 我的 Flutter 应用看起来卡顿或出现卡顿现象。我该如何修复?
- 我需要注意哪些代价高昂的性能操作?
Opacity
、Clip.antiAliasWithSaveLayer
或任何触发saveLayer
的操作ImageFilter
- 另请参阅 性能最佳实践
- 如何判断我的 Flutter 应用中哪些小部件在每一帧中都进行了重建?
- 在 widgets/debug.dart 中将
debugProfileBuildsEnabled
设置为 true。 - 或者,更改 widgets/framework.dart 中的
performRebuild
函数以忽略debugProfileBuildsEnabled
并始终调用Timeline.startSync(...)/finish
。 - 如果您使用 IntelliJ,则可以获得此数据的 GUI 视图。选择**跟踪小部件重建**,您的 IDE 将显示哪些小部件进行了重建。
- 在 widgets/debug.dart 中将
- 如何查询目标帧率(显示器的帧率)?
- 如何解决我的应用中由于代价高昂的 Dart 异步函数调用阻塞 UI 线程而导致的动画效果不佳的问题?
- 使用
compute()
方法生成另一个隔离区,如 在后台解析 JSON 菜谱中所示。
- 使用
- 如何确定用户将下载的 Flutter 应用的包大小?
- 请参阅 衡量应用大小
- 如何查看 Flutter 引擎大小的细分?
- 访问 二进制大小仪表板,并将 URL 中的 git 哈希替换为 GitHub 引擎存储库提交 中的最新提交哈希。
- 如何对正在运行的应用进行截图并将其导出为 SKP 文件?
- 运行
flutter screenshot --type=skia --observatory-uri=...
- 注意查看屏幕截图时的一个已知问题
- 问题 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 跟踪指南
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面上次更新于 2024-06-27。 查看源代码 或 报告问题.