众所周知,该java -Xmx
选项用于设置Java程序可用的最大堆空间。但是有没有办法让 Java 程序读取已设置的值?类似的东西System.getMaximumHeapSpace()
(不存在)。
问问题
11822 次
1 回答
27
有一个Runtime.maxMemory
,文档说它将返回 Java 虚拟机将尝试使用的最大内存量,但没有具体说明它是否是启动 JVM 时设置的最大堆内存。
作为测试,我编写了以下程序:
class MaxMemory {
public static void main(String[] args) {
System.out.println(Runtime.getRuntime().maxMemory());
}
}
执行结果如下:
C:\coobird\>java -Xmx64m MaxMemory
66650112
C:\coobird\>java -Xmx128m MaxMemory
133234688
这是在 Windows 上使用 Java SE 6 版本 1.6.0_12。
尽管这些值接近 64 MB(67,108,864 字节)和 128 MB(134,217,728 字节),但并非如此。
于 2009-06-14T15:13:10.303 回答