如何增加JVM堆大小

时间:2012-11-07 05:31:37

标签: java jvm heap-memory

我已经关注了increase JVM heap size Stack Overflow中的一些帖子,以增加JVM堆大小。 我按照上面建议的链接设置了环境变量。

我在程序下面执行,检查,最大堆大小是多少。

public class GetHeapSize {
     public static void main(String[]args){

            //Get the jvm heap size.
            long heapSize = Runtime.getRuntime().totalMemory();

            //Print the jvm heap size.
            System.out.println("Heap Size = " + heapSize);
        }

}

我在设置之前得到输出,设置后与 16252928

相同

请有人建议我如何增加堆大小?

2 个答案:

答案 0 :(得分:0)

totalMemory()报告堆的当前大小。如果您想要堆增长到的最大大小,请改为调用maxMemory()。 javadoc说:

  

“返回Java虚拟机将尝试使用的最大内存量。如果没有固有限制,则返回值Long.MAX_VALUE。”

然后说数量以字节为单位。

答案 1 :(得分:0)

在常见情况下,堆大小会动态增长,因此您可以使用-Xmx选项来限制堆的高大小,使用-Xms选项来设置堆的起始大小,并且可以在堆上使它们相同启动,这样JVM就不会花费资源进行动态内存操作。也可能有趣的是,您可以使用更具信息性的JMX方式通过MemoryMXBean bean获取堆大小。

MemoryMXBean MEMORYMXBEAN = ManagementFactory.getMemoryMXBean();