1

我关注了一些关于增加 JVM 堆大小堆栈溢出的帖子,以增加 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一样

请任何人都可以建议我如何增加堆大小?

4

2 回答 2

0

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

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

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

于 2012-11-07T05:39:50.277 回答
0

在一般情况下,堆大小会动态增长,因此您可以使用 -Xmx 选项来限制堆的高大小,并使用 -Xms 选项来设置堆的起始大小,并且可以在开始时使它们相同,所以JVM不会将资源用于动态内存操作。使用更多信息的 JMX 方法通过 MemoryMXBean bean 获取堆大小可能对您来说会很有趣。

MemoryMXBean MEMORYMXBEAN = ManagementFactory.getMemoryMXBean();
于 2012-11-07T07:07:48.310 回答