性能常见问题和回答
本篇收集了一些关于评估和调试 Flutter 性能的常见问题。
-
哪些性能仪表盘有 Flutter 相关的指标?
-
我如何向 Flutter 添加一个基准测试?
-
有哪些捕捉和分析性能指标的工具?
-
我的 Flutter 应用程序很卡顿,性能很糟糕。怎么样才能修复这些问题?
-
有哪些特别消耗性能的操作是我需要注意的?
-
Opacity
、Clip.antiAliasWithSaveLayer
或任何能触发saveLayer
的操作。 -
查阅 性能优化最佳实践
-
-
我如何才能知道 Flutter 应用程序中哪些 widget 在哪一帧中被重新构建?
-
将 widgets/debug.dart 中的
debugProfileBuildsEnabled
设置为 true。 -
或者,改变 widgets/framework.dart 中的
performRebuild
函数,忽略debugProfileBuildsEnabled
,并始终调用Timeline.startSync(...)/finish
。 -
如果你使用 IntelliJ,就可以看见这些数据的视图。在 IntelliJ 的 Flutter Performance 工具中勾选 Track widget rebuilds,你就能在 IDE 中直观地看见哪些 widget 进行了重建。
-
-
我如何查询显示器的刷新率?
-
如何解决我的应用程序因高消耗的 Dart 异步函数调用阻塞了 UI 线程,而导致动画效果不佳?
-
使用
compute()
方法生成另一个 isolate,例如 在后台处理 JSON 数据解析 实用教程 (Cookbook) 中所演示的。
-
-
我如何确定用户下载的 Flutter 应用程序包的体积?
-
请查阅 测量你的应用体积
-
-
我如何才能看到 Flutter engine 内架构细分的体积?
-
访问 binary size dashboard,用 GitHub 上 engine 仓库 最近提交的 hash 值替换 URL 中的 hash 值。
-
-
我如何才能对正在运行的应用程序进行截图,并将其导出 SKP 文件?
-
运行
flutter screenshot --type=skia --observatory-uri=...
命令 -
注意,一个查看截图的已知问题:
-
Issue 21237: 无法在真机中截图。
-
-
分析和可视化 SKP 文件,请使用 Skia WASM debugger。
-
-
如何从设备上读取着色器持久化缓存?
-
在 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 中进行追踪?
-
请查阅 Fuchsia 追踪指南
-
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2024-07-03。 查看文档源码 或者 为本页面内容提出建议。