首页 > 代码库 > Java heap space 设置

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