Flutter 性能调优
Flutter 垃圾回收机制
Flutter Framework 使用 Dart 语言开发,所以 App 进程中需要一个 Dart 运行环境(VM),Dart VM 中有 Dart 的垃圾收集器,该垃圾收集器的内存管理是分代的,由两个部分组成:新生代空间收集器、老年代(并行标记扫描)空间收集器,还有一个重要的东西,就是调度器。
-
调度器
在 Flutter 引擎中,为了最小化垃圾收集对应用程序和UI性能的印象,与垃圾收集器提供了 hook,当引擎检测到应用程序处于空闲状态(没有与用户交互),会发出警报,使垃圾收集器运行其收集阶段,而不影响性能的机会。
-
新生代(New Generation)
通常初次分配的对象都位于新生代中,该区域主要是存放内存较小并且生命周期较短的对象,比如局部变量、StatelessWidget 类型的 Widget 。新生代会频繁执行内存回收(GC),回收采用“复制-清除”算法,将内存分为两块(图中的 from 和 to),运行时每次只使用其中的一块(图中的 from),另一块备用(图中的 to)。当发生GC时,将当前使用的内存块中存活的对象拷贝到备用内存块中,然后清除当前使用内