假设我有一个类,其中许多字段都使用配置文件中的数据进行初始化。 Resharper等通常建议应用static readonly修饰符。
我的理解是,static关键字会导致变量存储在堆栈中,而不是堆中。因此,我开始想知道具有大量静态字段是否存在内存使用方面的影响。我搜索了一下,最好的结果是这篇关于静态字符串的文章static strings,其中提到(重点是我的):
当您在字符串上使用static关键字时,表示您只需要一个字符串引用,该引用可以指向一个对象。如果您的程序中有许多字符串值,则不要选择static关键字。
但不幸的是,它没有解释原因。
因此,我目前的最佳猜测是,使用static修饰符可以获得性能提升,因为涉及到指针,但您不应该自由地使用它们,因为它可能会对内存施加压力,因为垃圾收集器永远不会将它们清除?这准确吗?
我的理解是,static关键字会导致变量存储在堆栈中,而不是堆中。因此,我开始想知道具有大量静态字段是否存在内存使用方面的影响。我搜索了一下,最好的结果是这篇关于静态字符串的文章static strings,其中提到(重点是我的):
当您在字符串上使用static关键字时,表示您只需要一个字符串引用,该引用可以指向一个对象。如果您的程序中有许多字符串值,则不要选择static关键字。
但不幸的是,它没有解释原因。
因此,我目前的最佳猜测是,使用static修饰符可以获得性能提升,因为涉及到指针,但您不应该自由地使用它们,因为它可能会对内存施加压力,因为垃圾收集器永远不会将它们清除?这准确吗?