使用更多方法加载类会花费更多内存吗?

时间:2015-03-25 04:40:31

标签: c#

基本上,Foo实例在获取其值时会使用更多内存:

public class Foo
{

    internal double bar;

    double GetBar(){ return bar; }

}

还是喜欢这个?

public class Foo
{

    internal double bar;

}  

public static class FooManager
{
    public static double GetBar(Foo foo) { return foo.bar; }
}

那就是每个方法每个对象或每个类型使用的内存是什么?

1 个答案:

答案 0 :(得分:6)

实例本身只有一个指向加载类的方法表的指针,因此没有额外的每个实例开销可以有更多的方法,只有字段。

第二个示例将总共使用稍多的内存,因为您有两个类的定义,因此每个类开销更多(并且最初编写时,使用FooManager作为非静态类,您需要一个FooManager实例),但是每个Foo实例使用的内存量是相同的。