《性能指标》https://docs.flutter.cn/perf/metrics
《使用性能视图 (Performance view)》https://docs.flutter.cn/tools/devtools/performance
flutter提供的帧率检测API为:
SchedulerBinding.instance.addTimingsCallback((List<FrameTiming> timings) {})
编写代码,查看返回的FrameTiming是什么结构
SchedulerBinding.instance!.addTimingsCallback((List<FrameTiming> timings) {
for (var timing in timings) {
final buildDuration = timing.timestampInMicroseconds(FramePhase.buildFinish) - timing.timestampInMicroseconds(FramePhase.buildStart);
final rasterDuration = timing.timestampInMicroseconds(FramePhase.rasterFinish) -timing.timestampInMicroseconds(FramePhase.rasterStart);
print('Build Duration: ${buildDuration/1000} ms');
print('Raster Duration: ${rasterDuration/1000} ms');
}
});
-
第一帧的启动时间
- 当 WidgetsBinding.instance.firstFrameRasterized 为 true 时查看耗时。
- 查看 性能数据看板。
-
一帧的构建时间,栅格化时间,以及总时间
- 在 API 文档中查看
FrameTiming
。
- 在 API 文档中查看
-
一帧的构建时间
buildDuration
(*_frame_build_time_millis
)- 我们建议监测四个数据:平均值、90 分位值、99 分位值和最差帧构建时间。
- 例如,查看
flutter_gallery__transition_perf
测试案例中的 构建数据 。
-
一帧的栅格化时间
rasterDuration
(*_frame_build_time_millis
)- 我们建议监测四个数据:平均值、90 分位值、99 分位值和最差帧构建时间。
- 例如,查看
flutter_gallery__transition_perf
测试案例中的 栅格化数据 。
-
CPU/GPU 的使用情况(一个可以近似衡量功耗的指标)
- 该数据目前仅能通过跟踪事件获取。查看 profiling_summarizer.dart 。
- 查看
simple_animation_perf_ios
测试案例中的 CPU/GPU 数据。
-
release_size_bytes 对 Flutter 应用程序的大小进行估算
- 查看 basic_material_app_android、basic_material_app_ios、hello_world_android、hello_world_ios、flutter_gallery_android 和 flutter_gallery_ios 测试案例。
- 查看数据看板中的 体积大小 数据。
- 有关如何更精确的测量应用体积信息,查看 应用体积 页面。