java – 32位进程在64位系统上运行时是否需要更多内存?
作者:互联网
我有一个相当内存饥饿的java应用程序.
在我使用Windows XP Professional的32位系统上,如果我给它-Xmx1280m,应用程序将运行正常.以下所有内容最终都会出现在java.lang.OutOfMemoryError:Java堆空间异常中.
如果我在64位Windows XP Professional上运行相同的应用程序(其他一切完全相同),它需要-Xms1400m来防止OutOfMemory条件.
据我所知,如果我有一个C程序,我编译为32位和64位
64位版本需要更多内存,因为指针更宽,等等.
在我的java示例中,虚拟机(Sun)是相同的,字节码是相同的.
为什么64位机器需要更多内存?
解决方法:
可能是因为虚拟机实现在32/64位架构之间存在差异,因此它消耗更多内存(更宽的类型,不同的GC).
将任务传递给底层系统时,字节码无关紧要.我不确定Java和内存效率是否是我将要组合的两个术语:P
标签:java,out-of-memory,windows-xp,64bit,32-bit 来源: https://codeday.me/bug/20190716/1473324.html