Java heap space 设置

  当Java程序需要的堆栈比较大时常常会出现:

java.lang.OutOfMemoryError: Java heap space

意味着JVM的堆内存耗尽了。如果有需要的话,可以通过设置JVM的参数来调整Heap的大小。

  这中间有几个参数:

参数名称 含义 默认值  
-Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.
-Xmx 最大堆大小 物理内存的1/4(<1GB) 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制
-Xmn 年轻代大小(1.4or lator)   注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不同的。
整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.
增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8

  可以有多种方法修改Heap size:

1、系统中添加环境变量: JAVA_OPTS = -Xms64m -Xmx512m

2、在Eclipse中设置,VM arguments中加入 -Xms64m -Xmx512m

  

原文地址:https://www.cnblogs.com/hyace/p/3872954.html