性能常见问题
Flutter 性能常见问题解答
此页面收集了一些关于评估和调试 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 中将
- 如何查询目标帧速率(显示器的)?
- 如何确定我的 Flutter 应用的包大小(用户将下载的大小)?
- 请参阅 测量应用大小
- 如何查看 Flutter 引擎的大小分解?
- 访问 二进制大小仪表板,并将 URL 中的 git 哈希替换为来自 Flutter 的 GitHub 提交 的最新提交哈希。
- 如何截取正在运行的应用的屏幕截图并将其导出为 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 跟踪指南