这段代码会导致Flutter内存泄漏吗?
A 类和 B 类相互引用:
VM
中的Flutter
有GC
,与我学过的其他语言不同,比如OC
或Swift
。
我通过开发工具观察,发现好像是GC,但是我对开发工具不熟悉,不确定我观察到的是否正确。
另一个问题是:这段代码会导致内存泄漏吗
dart cli
?
谢谢!
class A {
late B b;
}
class B {
final A a;
B({required this.a});
}
class MyWidget extends StatelessWidget {
const MyWidget({super.key});
@override
Widget build(BuildContext context) {
return TextButton(
onPressed: () {
_onClickTest();
},
child: const Text('Test'));
}
void _onClickTest() {
final a = A();
final b = B(a: a);
a.b = b;
}
}
根据您的代码,不,它不应导致 Flutter 或 Dart CLI 中的内存泄漏。 Dart 的垃圾收集器旨在有效处理循环引用。
在您的代码中,a和b实例是在_onClickTest方法内创建的。它们只能在该方法的范围内访问。方法执行完成并且没有其他对这些实例的引用后,它们就可以进行垃圾回收。