【发布时间】:2011-03-29 04:57:12
【问题描述】:
JVM -Xmx 参数允许将 JVM 的最大堆大小设置为某个值。但是,有没有办法让这个价值变得动态?换句话说,我想告诉JVM“看,如果你需要它,就继续从系统中取出RAM,直到系统退出。”
询问的两部分原因: 首先,有问题的应用程序可以使用非常广泛的内存,具体取决于用户正在做什么,因此概念上的最小值和最大值相差甚远。其次,JVM 似乎在启动时从虚拟内存中保留了最大堆空间。这个特定的应用程序在各种各样的硬件上运行,因此选择“一刀切”的最大堆空间很困难,因为它必须足够低才能在低端硬件上运行,但我们真的希望能够利用真正强大的机器(如果有的话)。
【问题讨论】:
-
与这些问题的区别在于意图;我自己不想与它有任何关系,我真的只想让 JVM 神奇地为我做这件事。 :)
-
好吧,如果您选择默认值,JVM 会根据可用的系统内存执行一些“魔术”。 download.oracle.com/javase/6/docs/technotes/guides/vm/…