[英]Do static properties cause memory bloat?
这可能是微优化,但我只是想了解有关.NET如何处理这些不同方法的背景知识。
private const string SomeText = "(imagine this might be pages worth of text)"
public static ObjectThing SomeObject { get; } = new ObjectThing(SomeText);
与
public static ObjectThing GetSomeObject() {
const string someText = "(kilobytes or megabytes of text)";
return new ObjectThing(someText);
}
使用string
可能不是最好的例子。 这就是我开始想知道这个的时候。
总的来说,我认为第二种方法是由垃圾收集器生存和消亡。
但这令我感到奇怪:如果您初始化足够的静态属性,并且它们足够大,那么这会对整个程序产生相对负面的影响吗?
对整个计划有相对负面的影响吗?
静态属性是使用作为GC根的静态字段实现的。 因此,从静态属性可访问的任何对象将永远存在。
肯定会导致过多的内存使用。 这是引起堆使用情况的另一种方法。
是否过多取决于使用的内存量,可用的内存量以及GC速度是否是瓶颈。
在实际应用中,这通常并不重要。 当然,除了要在其中锚定巨大的数据结构外,这又与引用静态属性无关。 这只是一般的内存使用情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.