性能常见问题
本页收集了一些关于评估和调试Flutter性能的常见问题。
- 哪些性能面板具有与Flutter相关的指标?
- 如何向Flutter添加基准测试?
- 有哪些用于捕获和分析性能指标的工具?
- 我的Flutter应用看起来卡顿或卡涩。如何修复它?
- 我需要注意哪些代价高昂的性能操作?
Opacity
,Clip.antiAliasWithSaveLayer
, 或任何触发saveLayer
的操作ImageFilter
- 另请参阅性能最佳实践
- 如何判断我的Flutter应用中哪些widget在每一帧中都被重建?
- 在widgets/debug.dart中将
debugProfileBuildsEnabled
设置为true。 - 或者,更改widgets/framework.dart中的
performRebuild
函数以忽略debugProfileBuildsEnabled
并始终调用Timeline.startSync(...)/finish
。 - 如果你使用IntelliJ,则可以使用此数据的GUI视图。选择跟踪widget重建,你的IDE将显示哪些widget进行了重建。
- 在widgets/debug.dart中将
- 如何查询目标帧率(显示器的帧率)?
- 如何确定用户将下载的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 的最新稳定版本。页面最后更新于 2025-01-30。 查看源代码 或 报告问题。