2011-01-25 115 views
6

有没有办法设置最大Java堆大小以编程方式而不是作为vm参数?以编程方式设置最大java堆大小

喜欢的东西:

System.getProperties().put("<heap variable>", "1000m"); 
+2

可能重复的[如何以编程方式增加java堆大小](http://stackoverflow.com/questions/2073869/how-to-increase-java-heap-size-programmatically) – miku 2011-01-25 02:06:45

回答

7

不与任何热点JVM。 JVM堆参数只能在命令行中指定,然后在JVM的生命周期中进行修复。

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

(我依稀记得,JVM的一些其他厂商允许一些堆参数在运行中的JVM进行更改。也许有人可以澄清。)

0

你需要了解JVM空间和之间的区别运行环境。 您提到的参数(以及任何其他-X或-XX参数)是由运行JVM的环境提供的环境设置。

在Windows XP计算机中,Windows OS是JVM的发起者。因此,JVM不应该能够更改操作系统提供的参数。这是合乎逻辑的。

@Stephen C,你可能对某些提供此功能的VM实现是正确的,但我不确定。