MaxRAM:
根据计算机上的内存量。用于堆的内存比例由命令行选项InitialRAMFraction和MaxRAMFraction控制
[...]
MaxRAM的值取决于平台。
Xmx:
-Xmxn
指定内存分配池的最大大小(以字节为单位)。此值必须是大于2 MB的1024的倍数。追加字母k或K表示千字节,或者追加m或M表示兆字节。默认值为64MB。在Solaris 7和Solaris 8 SPARC平台上,此值的上限约为4000m,在Solaris 2.6和x86平台上,该值的上限约为2000m(减去开销)。
据我了解,两者均定义heap
大小。没有?建议使用什么:Xmx
或MaxRAM
?如果我同时使用哪一个卵子?
最佳答案
-Xmx
指定堆的精确上限。这是设置堆大小的首选方法。-XX:MaxRAM
不会直接定义堆大小。取而代之的是,此参数在根据人体工程学计算堆限制时会覆盖物理RAM的实际数量。
如果设置了-Xmx
,则从不使用MaxRAM
。否则,最大堆大小估计为1
MaxHeapSize = MaxRAM * MaxRAMPercentage / 100% (default MaxRAMPercentage=25)
1实际的algorithm有点复杂,并且取决于其他参数。