我已经关注了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
相同请有人建议我如何增加堆大小?
答案 0 :(得分:0)
totalMemory()
报告堆的当前大小。如果您想要堆增长到的最大大小,请改为调用maxMemory()
。 javadoc说:
“返回Java虚拟机将尝试使用的最大内存量。如果没有固有限制,则返回值Long.MAX_VALUE。”
然后说数量以字节为单位。
答案 1 :(得分:0)
在常见情况下,堆大小会动态增长,因此您可以使用-Xmx选项来限制堆的高大小,使用-Xms选项来设置堆的起始大小,并且可以在堆上使它们相同启动,这样JVM就不会花费资源进行动态内存操作。也可能有趣的是,您可以使用更具信息性的JMX方式通过MemoryMXBean bean获取堆大小。
MemoryMXBean MEMORYMXBEAN = ManagementFactory.getMemoryMXBean();