flutter 性能分析

1. Flutter 的线程

平台线程

即主线程,plugin 代码运行在此线程。具体请参阅 Android 的 MainThread 以及 iOS 的 UIKit 文档。

UI 线程

UI 线程在 Dart VM 中执行 Dart 代码。当应用创建和展示场景的时候,UI 线程首先建立一个 图层树(layer tree) ,一个包含设备无关的渲染命令的轻量对象,并将图层树发送到 GPU 线程来渲染到设备上。

Raster 线程

raster 线程拿到 layer tree,并将它交给 GPU(图形处理单元)。图形库 Skia 在该线程运行,并在性能图层的最顶栏显示该线程。

I/O 线程

执行昂贵的操作(常见的有 I/O)以避免阻塞 UI 或者 raster 线程。这个线程将不会显示在 performance overlay 上。

2. 性能图表

打开 inspector 并单击 Performance Overlay 按钮即可显示性能图层。

命令行使用 P 参数切换性能图层。

定位 UI 图表

如果性能图层的 UI 图表显示红色,就要从分析 Dart VM 开始着手了,即使 GPU 图表同样显示红色。

定位 GPU 图表

检查 widget 的重建。debug 模式下可打开 stuidio 的性能工具窗口,可查看widget 的 rebuild 信息。

黄色的表示重载次数过多,灰色转圈的表示已重载,灰色不转圈的表示未重载。

原文地址:http://www.cnblogs.com/lemos/p/16899996.html

发表评论

您的电子邮箱地址不会被公开。