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 信息。
黄色的表示重载次数过多,灰色转圈的表示已重载,灰色不转圈的表示未重载。
标签:分析,性能,图表,UI,GPU,线程,图层,flutter From: https://www.cnblogs.com/lemos/p/16899996.html