有-Xmx和max-heap-size(jnlp)选项可设置Java应用程序可以使用的最大内存。
如果未指定这些选项,则允许应用程序仅使用系统中可用的少量物理内存。这就是人们玩-Xmx的原因,以允许应用程序使用更多内存。但对我来说,这真的是一场噩梦,因为客户机器上可能有不同数量的内存,甚至需要考虑操作系统。
是否有任何方法允许Java应用程序使用系统中可用的最大内存?
谢谢。
-XX:DefaultMaxRAMFraction=1
请注意,这些链接提供了有关Java虚拟机和默认堆大小的信息。但是需要注意的是,默认堆大小不适用于web启动。
很遗憾,我所知道的最好方法是编写一个简单的启动器(可能是一个shell脚本或批处理文件),检查系统,确定适当的-Xmx值,然后启动Java应用程序。一旦JVM初始化完成,就无法更改这些值。
-Xms
,初始堆大小。-Xmx
是最大堆大小。 - cha0site