Dan*_*eld 22
在任何事情之前:确保您看到的卡顿确实与此问题有关。如果您的应用程序在 iOS 中的 OpenGL 后端上已经出现问题,或者在 Android(实现了着色器缓存)上已经出现问题,那么您可能会遇到其他一些与性能相关的问题。尝试在 Flutter 中进行性能分析- 即记录一些时间线并分析框架工作负载中发生的事情。
编辑 2/23/2021
Metal 二进制归档工作被证明是一个死胡同。有关更多详细信息,请参阅https://github.com/flutter/engine/pull/23914。对于 Flutter 团队来说,这仍然是一个高优先级项目,但目前尚不清楚修复的时间表。
结束编辑
除此以外:
一点背景:
着色器是 Skia 根据各种绘图命令创建的小程序,用于创建 GPU 可以执行以在屏幕上实际绘制像素的程序。编译它们可能需要大量时间,并且不同的场景可能需要不同的着色器程序。Flutter 的架构旨在缓存和重用已编译的着色器程序,以便它们在编译后可以重用。Skia 中基于 OpenGL 的后端中存在对此的支持,但仍在为基于 Metal 的后端开发(请参阅https://skbug.com/10804)。
迁移到 Metal 有很多很好的理由。
我们曾短暂考虑过同时支持 OpenGL 和 Metal,但决定不支持。解决堆栈中该层错误的资源有限,我们已经知道 Metal 解决了许多与性能相关的问题。
| 归档时间: |
|
| 查看次数: |
4052 次 |
| 最近记录: |