《性能指標(biāo)》https://docs.flutter.cn/perf/metrics
《使用性能視圖 (Performance view)》https://docs.flutter.cn/tools/devtools/performance
flutter提供的幀率檢測(cè)API為:
SchedulerBinding.instance.addTimingsCallback((List<FrameTiming> timings) {})
編寫(xiě)代碼班利,查看返回的FrameTiming是什么結(jié)構(gòu)
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');
}
});
image.png
-
第一幀的啟動(dòng)時(shí)間
- 當(dāng) WidgetsBinding.instance.firstFrameRasterized 為 true 時(shí)查看耗時(shí)理朋。
- 查看 性能數(shù)據(jù)看板。
-
一幀的構(gòu)建時(shí)間浦夷,柵格化時(shí)間惰爬,以及總時(shí)間
- 在 API 文檔中查看
FrameTiming
喊暖。
- 在 API 文檔中查看
-
一幀的構(gòu)建時(shí)間
buildDuration
(*_frame_build_time_millis
)- 我們建議監(jiān)測(cè)四個(gè)數(shù)據(jù):平均值、90 分位值撕瞧、99 分位值和最差幀構(gòu)建時(shí)間陵叽。
- 例如狞尔,查看
flutter_gallery__transition_perf
測(cè)試案例中的 構(gòu)建數(shù)據(jù) 。
-
一幀的柵格化時(shí)間
rasterDuration
(*_frame_build_time_millis
)- 我們建議監(jiān)測(cè)四個(gè)數(shù)據(jù):平均值巩掺、90 分位值偏序、99 分位值和最差幀構(gòu)建時(shí)間。
- 例如胖替,查看
flutter_gallery__transition_perf
測(cè)試案例中的 柵格化數(shù)據(jù) 研儒。
-
CPU/GPU 的使用情況(一個(gè)可以近似衡量功耗的指標(biāo))
- 該數(shù)據(jù)目前僅能通過(guò)跟蹤事件獲取。查看 profiling_summarizer.dart 刊殉。
- 查看
simple_animation_perf_ios
測(cè)試案例中的 CPU/GPU 數(shù)據(jù)殉摔。
-
release_size_bytes 對(duì) Flutter 應(yīng)用程序的大小進(jìn)行估算
- 查看 basic_material_app_android、basic_material_app_ios记焊、hello_world_android逸月、hello_world_ios、flutter_gallery_android 和 flutter_gallery_ios 測(cè)試案例遍膜。
- 查看數(shù)據(jù)看板中的 體積大小 數(shù)據(jù)碗硬。
- 有關(guān)如何更精確的測(cè)量應(yīng)用體積信息,查看 應(yīng)用體積 頁(yè)面瓢颅。