Runtime.maxMemory()和-Xmx

时间:2012-12-05 18:09:36

标签: java jvm

我期待Runtime.maxMemory()完全返回-Xmx,但它返回一个较低的值。 那它又回归了什么?

3 个答案:

答案 0 :(得分:5)

  

-Xmx标志的解释依赖于VM。一些虚拟机,   包括HotSpot,强制执行有效值的下限   这个选项。 CCC提案不应该提到-Xmx标志   就这样。

Reference

答案 1 :(得分:4)

返回Java虚拟机将尝试使用的最大内存量,jvm可能不会将您定义为-Xmx参数的所有内存仅用于堆。

答案 2 :(得分:1)

-Xmxn

  

指定内存分配池的最大大小(以字节为单位)。   此值必须是1024的倍数大于2MB。附上这封信   k或K表示千字节,或m或M表示兆字节。该   默认值为64MB。该值的上限为   Solaris 7和Solaris 8 SPARC平台上的大约4000米   在Solaris 2.6和x86平台上2000m,减去开销金额。   例子:

       -Xmx83886080
       -Xmx81920k
       -Xmx80m

maxMemory()

  

返回Java虚拟机的最大内存量   将尝试使用。如果没有固有的限制那么值   将返回Long.MAX_VALUE。