这段代码会导致Flutter内存泄漏吗?

问题描述 投票:0回答:1

这段代码会导致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 garbage-collection
1个回答
0
投票

根据您的代码,不,它不应导致 Flutter 或 Dart CLI 中的内存泄漏。 Dart 的垃圾收集器旨在有效处理循环引用。

在您的代码中,ab实例是在_onClickTest方法内创建的。它们只能在该方法的范围内访问。方法执行完成并且没有其他对这些实例的引用后,它们就可以进行垃圾回收。

© www.soinside.com 2019 - 2024. All rights reserved.