64位应用程序在相同负载上占用更多内存

时间:2015-08-18 11:41:43

标签: .net memory-management memory-leaks 64-bit console-application

在这个广阔的发展世界中,我仍然是一个新手并不断学习,最近在监控服务时我注意到了一种突然的行为。

我有一个模拟工具,可以在我的应用程序上生成负载。如果我将我的应用程序部署为32位应用程序,那么应用程序在满负载时几乎不会消耗300MB。但是,如果它将控制台应用程序部署为64位应用程序,它会开始消耗资源,并且在与32位应用程序相同的负载级别上,它在内存中消耗的内存最少为900MB。

任何人都可以解释应用程序发生了什么吗?任何形式的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

64位和32位之间的主要变化是地址字段的宽度,它从4个字节(32位)增加到8个字节(64位)。所以,显然,应用程序中的引用/对象数量越多,64位内存消耗就越多。阅读有关32位与64位here的更多信息。

话虽如此,它有点怀疑它在64位版本中消耗的内存是3倍。我会得到一个适当的内存分析器,并测试您的应用程序是否有任何内存泄漏。如果没有内存泄漏,则无需担心32位和64位的内存消耗差异。