为什么32位应用程序比64位版本使用更少的RAM,即使32位可执行文件更大

时间:2011-07-23 14:50:38

标签: .net-4.0

我在.NET中创建了一个应用程序。当我编译64位版本和同一软件的32位版本时,64位可执行文件更小。

然而,当你同时运行它们时,64位版本使用更多RAM。

我确定发生了什么事情"引擎盖下#34;并且只是感兴趣为什么? (不管怎样都不用担心)

感谢。

编辑:C#.NET 4.0,如果重要的话。

2 个答案:

答案 0 :(得分:8)

在32位应用程序中,指针是32位,即4个字节,而它们是64位,即64位应用程序中的8个字节。所以指针(例如对象引用)占用了两倍的内存。

此外,在32位应用程序中,对象每个对象的开销为12个字节,而在64个应用程序中,它们的开销为24个字节。再加倍。

这些影响将在运行时被注意到,而不是在dll大小中。

答案 1 :(得分:4)

指针在64位模式下是两倍大。这可以解释一些(有时很多)RAM使用差异。