CF与完整框架中的内存消耗

时间:2011-05-13 21:41:48

标签: .net compact-framework memory-management

我想知道Full Framework与Compact Framework中的内存消耗是否在两者之间兼容的类型和类中是不同的。 我还想知道我是否针对紧凑框架(.dll库)定位程序集,并在桌面计算机中引用它。它会使用完整框架或紧凑的类型。如果是后者,我认为内存消耗应该是相同的但是它呢? 我的直觉是紧凑的框架类型更简单,因为它们通常具有更少的方法,并且缺少许多类。但每个对象的内存表示是否相同?这取决于架构吗? (例如在ARM vs x86上运行它) 是否有资源可以找到有关此主题的更多信息?

1 个答案:

答案 0 :(得分:1)

我认为这很大程度上取决于你所关注的具体细节。例如,如果我有一个简单的对象:

public class Foo
{
    public int ID { get; set; }
    public string Name { get; set; }
}

然后,在任一框架下,内存中的表示都是相同的。

但是,如果我从两个框架之间根本不同的更复杂的类派生,那么框架之间的结果就会不同。

如果在FFx中加载,它将使用FFx程序集来实例化实例,因此即使它是为CF编译的,FFx也会在FFX运行时而不是CF下加载它。

处理器架构并不重要,因为这些都编译为IL,这与处理器无关。

当然,由于您在谈论托管代码下的内存消耗,因此GC的工作方式也是一个重要因素,并且它们在CF和FFx中的工作方式不同,因此对于相同的类,在不同时间段内的占用空间可能会有所不同。两个框架都取决于使用模式。