Flutter性能调试问题
Flutter性能调试问题渲染性能统计要了解您的应用程序导致重新布局或重新绘制的原因,您可以分别设置 debugPrintMarkNeedsLayoutS tacks 和 debugPrintMarkNeedsPaintStacks 标志。 每当渲染盒被要求重新布局和重新绘制时,这些 都会将堆栈跟踪记录到控制台。如果这种方法对您有用,您可以使用 services 库中的 debugPrint...
·
Flutter性能调试问题
渲染性能统计
- 要了解您的应用程序导致重新布局或重新绘制的原因,您可以分别设置 debugPrintMarkNeedsLayoutS tacks 和 debugPrintMarkNeedsPaintStacks 标志。 每当渲染盒被要求重新布局和重新绘制时,这些 都会将堆栈跟踪记录到控制台。如果这种方法对您有用,您可以使用 services 库中的 debugPrintSt ack() 方法按需打印堆栈痕迹。
统计应用启动时间
- 要收集有关Flutter应用程序启动所需时间的详细信息,可以在运行 flutter run 时使用 trace- startup 和 profile 选项。
$ flutter run --trace-startup --profile
- 跟踪输出保存为
start_up_info.json,在Flutter工程目录在build目录下。输出列出了从应用程序启动到这些跟踪事件(以微秒捕获)所用的时间:
进入Flutter引擎时.
展示应用第一帧时.
初始化Flutter框架时.
完成Flutter框架初始化时.
如:
{
"engineEnterTimestampMicros":96025565262,
"timeToFirstFrameMicros": 2171978,
"timeToFrameworkInitMicros":514585,
"timeAfterFrameworkInitMicros": 1657393
}
跟踪代码性能
- 要执行自定义性能跟踪和测量Dart任意代码段的wall/CPU时间(类似于在Android上使用systrace)。
使用 dart:developer 的Timeline工具来包含你想测试的代码块,例如:
Timeline.startSync('interesting function');
// iWonderHowLongThisTakes();
Timeline.finishSync();
然后打开你应用程序的Observatory timeline页面,在“Recorded Streams”中选择‘Dart’复选框,并执 行你想测量的功能。
刷新页面将在Chrome的跟踪工具中显示应用按时间顺序排列的timeline记录。
请确保运行 flutter run 时带有 --profile 标志,以确保运行时性能特征与您的最终产品差异最小。
更多推荐



所有评论(0)