PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
更改的方式如下:
C:/Oracle/Middleware/user_projects/domains/eip_domain/bin
对文件:startWeblogic.cmd中增加:
@REM ----------------------------------------------------------------------
@REM
@REM Reset the memory configuration (2011-03-29)
@REM
@REM ----------------------------------------------------------------------
set MEM_ARGS=-Xms1024m -Xmx1024m -XX:MaxPermSize=512m
如若采用的是eclipse product模式,weblogic server在elipse中启动的话,还要修改eclipse中的配置:
进到eclipse中的eclipse.ini中,修改如下:
--launcher.XXMaxPermSize
512m
-vmargs
-Xms2048m
-Xmx2048m
与weblogic中startWeblogic修改的配置一样。