论坛首页 Java企业应用论坛

JVM内存设置及Geronimo的OutOfMemoryError:PermGen问题

浏览 3159 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-19   最后修改:2010-09-24
Geronimo在重复装载一个工程的时候抛java.lang.OutOfMemoryError: PermGen space 异常。
JVM的PermGen内存溢出了。

改动setjavaenv.bat中的设置解决该问题。

set JAVA_OPTS="-Xms512m" "-Xmx512m" "-XX:PermSize=512m" "-XX:MaxPermSize=512m"

JConsole中关于内存分区的说明。

Eden Space (heap): 内存最初从这个线程池分配给大部分对象。
Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。
Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。
Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的,
Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics