首页 > 解决方案 > 如何清除flutter中的外部堆内存?

问题描述

我的项目中存在内存泄漏问题。我需要解决它。初始内存为 15.7 MB,外部内存为 79.2 KB 在此处输入图像描述

执行一些操作并单击 GC 后,最终内存为 31.5 MB,外部内存为 16.6 MB 在此处输入图像描述

外部内存中的实例 6 有 7.92 MB。找不到它在项目中的存储位置。我点击了那个实例 6,它什么也没显示。 在此处输入图像描述

我需要清除该内存。但我不知道清除外部内存。请帮助我找到解决方案。

标签: flutterdartmemorymemory-management

解决方案


如果我们没有代码,很难找到内存泄漏的根本原因,但我怀疑您没有在屏幕中使用 dispose。当代码检测到状态对象将永远不会再次构建时,它将清理对象。

文档: https ://api.flutter.dev/flutter/widgets/NavigatorState/dispose.html

示例:

@override
void dispose() {
  focusScopeNode.dispose(); 
  for (final _RouteEntry entry in _history)
    entry.dispose();
  super.dispose();
}

推荐阅读