java.lang.OutOfMemoryError: PermGen space PermGen space & java.lang.OutOfMemoryError: Java heap space Heap siz

java.lang.OutOfMemoryError: PermGen space PermGen space  

  由-XX:PermSize  -XX:MaxPermSize 引起

java.lang.OutOfMemoryError: Java heap space Heap siz

  由-Xms -Xmx 引起

 

Liunx下修改:catalina.sh

  # OS specific support.  $var _must_ be set to either true or false.

  JAVA_OPTS="-server -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=2048m"

Windows下修改:catalina.bat

   set JAVA_OPTS=%JAVA_OPTS% -server -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=2048m 

   echo Using CATALINA_BASE:   "%CATALINA_BASE%"

 

 

-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些。表示JVM Heap(堆内存)最小尺寸
-Xmx:java heap最大值,使用的最大内存。表示JVM Heap(堆内存)最大允许的尺寸

上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域

PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。

 

 

 

MaxPermSize缺省值和-server -client选项相关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m

 

posted @ 2015-02-04 22:14  七郎  Views(363)  Comments(0Edit  收藏  举报