Flutter静叶的使用和性能

c8ib6hqw  于 2022-12-05  发布在  Flutter
关注(0)|答案(2)|浏览(158)

在我的公司,我的同事说:“在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="asked@gmail.com";
static final Int password=1231234;
}
dgtucam1

dgtucam11#

不,它不会影响内存和性能,因为静态变量的内存分配只在类加载时在类区域中发生一次。如果您不使其成为静态的,则每次创建类的新对象时都会占用新的内存空间。因此,它会增加内存使用。

b5lpy0ml

b5lpy0ml2#

static(或等价的全局)变量引用的对象将在程序的生存期内存在。垃圾回收器永远不会释放它,直到程序终止或显式删除该引用(例如,通过重新分配static变量以引用其他对象)。
由于static对象通常是长寿命的,它们可能会增加内存使用。然而,这通常不是问题,因为在你的程序中有一个固定的(不是很大)数量的static变量。它们通常不会消耗无限的内存量。
如果static变量引用(直接或间接)某个可以无约束地动态增长的集合对象(a cache with a bad policy is another name for a memory leak),这 * 可能 * 是一个问题,但对于任何长期存在的集合来说,这都是需要注意的事情,而且根本不特定于static/全局变量。

相关问题