我在.NET中创建了一个应用程序。当我编译64位版本和同一软件的32位版本时,64位可执行文件更小。
然而,当你同时运行它们时,64位版本使用更多RAM。
我确定发生了什么事情"引擎盖下#34;并且只是感兴趣为什么? (不管怎样都不用担心)
感谢。
编辑:C#.NET 4.0,如果重要的话。
答案 0 :(得分:8)
在32位应用程序中,指针是32位,即4个字节,而它们是64位,即64位应用程序中的8个字节。所以指针(例如对象引用)占用了两倍的内存。
此外,在32位应用程序中,对象每个对象的开销为12个字节,而在64个应用程序中,它们的开销为24个字节。再加倍。
这些影响将在运行时被注意到,而不是在dll大小中。
答案 1 :(得分:4)
指针在64位模式下是两倍大。这可以解释一些(有时很多)RAM使用差异。