方法存储在内存中的哪个位置?

时间:2009-08-19 06:32:35

标签: c# .net memory

我了解到类字段存储在堆中,但方法存储在哪里?在堆中还是其他地方?他们是内联的吗?

2 个答案:

答案 0 :(得分:33)

方法存储在内存中的其他位置。请注意,方法是每个类,而不是每个实例。通常,方法的数量在程序的运行时间内不会改变(有例外)。在传统模型中,方法所在的位置称为“代码段”。在.net中,它更加困难:方法最初存在于程序集中,并被映射到进程内存中。在那里,即时编译器在本机代码中创建了一些方法的第二个副本;这个副本被执行。 JIT代码可能会在运行时期间多次创建和删除,因此将其视为“在堆中”也是实用的。

答案 1 :(得分:3)

类方法与所有代码一起存储在专门用于存储代码的程序存储器段中。每个方法的代码都存储一次。