Flutter静态用法和性能?

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

在我公司,我的队友说“在Flutter中,静态使用对内存非常有害。你不应该过多使用静态变量。”

之后我在网上搜索,但没有找到满意的答案。所以,我只是想知道,如果我像下面的代码行一样使用静态值,它会增加内存使用量或降低性能吗?非常感谢。

class {
static final String name="asd";
static final String surname="ajskandkanjsd";
static final Int age=123;
static final isStudent=false;
static final String email="[email protected]";
static final Int password=1231234;
}
flutter performance dart class static
2个回答
6
投票

static
(或等效的全局)变量引用的对象将在程序的生命周期中存在。 垃圾收集器永远不会释放它,直到您的程序终止或您明确删除该引用(例如通过重新分配您的
static
变量以引用不同的对象)。

由于

static
对象通常寿命较长,因此它们可能会增加内存使用量。 然而,这通常不是问题,因为程序中有固定数量(通常不是很大)的
static
变量。 它们通常不会消耗无限量的内存。

如果您有一个 static 变量引用(无论是直接还是间接)某个可以不受限制地动态增长的集合对象,那么这

 可能会是一个问题(
具有错误策略的缓存是内存泄漏的另一个名称 ),但对于任何长期存在的集合来说,这是需要注意的事情,并且不会特定于 static
/全局变量。


4
投票
不会,它不会影响内存和性能,因为静态变量的内存分配仅在类加载时在类区域中发生一次。如果您不将其设为静态,那么每次创建该类的新对象时,它都会占用新的内存空间。所以它会增加内存使用量。

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