64位Linux系统上的内存使用量是MAC 32位的两倍

问题描述:

我们试图在64位Linux操作系统上使用jdk 1.5_22版本在JBOSS 5.01版本中部署应用程序。java进程在比较时几乎需要两倍的内存到在MAC OS上运行的32位jvm。 Linux 64位系统会有补丁吗? 或为什么它的行为如此? 我们知道64位需要更多的内存。有一点我们可以从Oracle的一篇文章中得知,这是64位内存占用空间,与32位相比64位Linux系统上的内存使用量是MAC 32位的两倍

+3

指针是两倍大。还有其他问题吗? – 2011-03-10 17:55:53

+0

你如何测量内存使用量(在每个系统上)? – 2011-03-10 18:02:56

使用Java 6 VM,您可以尝试添加UseCompressedOops,这将减少指针的大小。

java -XX:+UseCompressedOops ...

http://wikis.sun.com/display/HotSpotInternals/CompressedOops

+0

我们已经尝试过这个选项,但内存变化是微不足道的。我们曾经尝试使用Xmx选项增加堆大小。想知道是否有一些文章或链接从Oracle(Sun)证明相同 – MSSV 2011-03-11 18:17:37

你明确地设置与-Xmx最大堆大小?如果不是,请注意,除了较大的指针外,default heap size在64位上比在32位上更大。