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