在这个广阔的发展世界中,我仍然是一个新手并不断学习,最近在监控服务时我注意到了一种突然的行为。
我有一个模拟工具,可以在我的应用程序上生成负载。如果我将我的应用程序部署为32位应用程序,那么应用程序在满负载时几乎不会消耗300MB。但是,如果它将控制台应用程序部署为64位应用程序,它会开始消耗资源,并且在与32位应用程序相同的负载级别上,它在内存中消耗的内存最少为900MB。
任何人都可以解释应用程序发生了什么吗?任何形式的帮助将不胜感激。
答案 0 :(得分:1)
64位和32位之间的主要变化是地址字段的宽度,它从4个字节(32位)增加到8个字节(64位)。所以,显然,应用程序中的引用/对象数量越多,64位内存消耗就越多。阅读有关32位与64位here的更多信息。
话虽如此,它有点怀疑它在64位版本中消耗的内存是3倍。我会得到一个适当的内存分析器,并测试您的应用程序是否有任何内存泄漏。如果没有内存泄漏,则无需担心32位和64位的内存消耗差异。