如何清除 flutter web 中的堆内存?

How to clear heap memory in flutter web?

我正在研究 flutter web.I 需要知道如何清除 flutter web 中的堆内存。 我使用了简单的文本小部件,但它需要 144mb 作为堆。 我不知道它从哪里来。 我的代码:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    title: 'Demo',
    home: Text('hi'),
  ));
}

附上图片供参考

请告诉我如何清除这段内存。

这里有两点:

  1. 我的假设是您 运行 处于调试模式的应用程序。在调试模式下,应用程序包含许多用于调试目的的内容,这些内容不会包含在您的发布应用程序中。例如,我正在处理的应用程序从登录屏幕开始,在调试模式下占用约 100Mb,而在发布模式下仅占用约 20Mb。因此,请尝试在发布模式下编译您的应用程序并查看。

  2. 我不认为你可以清除内存。 Dart 有 GC(垃圾收集器)为你做这件事。作为开发人员,您需要做的就是确保您没有无法被垃圾回收的对象,因此会保留在 VM 堆中,随着时间的推移导致内存泄漏。

如果您要问的是如何 运行 在网络上 flutter 以使其在一开始就消耗更少的内存,答案可能是 运行 在发布模式下使用 html 渲染器而不是 canvas 渲染器。 (有关渲染器的更多信息:https://flutter.dev/docs/development/tools/web-renderers

flutter run -d chrome --web-renderer html --release

这对我有用。 运行 一个简单的 hello world 应用程序,即使在发布模式下,我的堆也约为 150mb。然后,我切换到 html 渲染器。现在,在调试模式下,堆约为 60mb。在发布模式下它是 ~7mb.