以编程方式设置Java最大堆大小

7
有没有一种方法可以以编程方式设置最大Java堆大小,而不是作为VM参数?
类似以下内容:
System.getProperties().put("<heap variable>", "1000m");

2
可能是如何在程序中增加Java堆大小的重复问题。 - miku
2个回答

7

不能使用任何热点JVM来更改JVM堆参数。JVM堆参数只能在命令行上指定,然后在JVM运行期间保持不变。

使用Hotspot Java实现,唯一改变应用程序堆大小的方法是使用不同的命令行参数在新的JVM中重新启动它。

(我模糊地记得来自其他供应商的JVM允许在运行的JVM中更改某些堆参数。也许有人可以澄清这一点。)


0
你需要理解JVM空间和运行环境之间的区别。 你提到的参数(以及任何其他-X或-XX参数)是由运行JVM的环境提供的环境设置。
在Windows XP机器上,Windows操作系统是JVM的发起者。因此,JVM不应该能够更改操作系统提供的参数。这是合乎逻辑的。
@Stephen C,也许你对某些提供此功能的虚拟机实现是正确的,但我不确定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接