PermGen实际上代表什么?

问题

我知道PermGen是什么,它用于什么,它失败的原因,如何增加它等等。

我不知道的是PermGen实际上代表什么。永久...... Gen ...什么?

有谁知道PermGen实际上代表什么?


#1 热门回答(77 赞)

永久代。详细信息当然是特定于实现的。

简而言之,它包含与类和实习字符串相关联的Java对象。在Sun的客户端实现中共享,classes.jsa是内存映射形成初始数据,大约一半是只读,一半是写入时。

仅旧的Java对象保留在Tenured Generation中。


#2 热门回答(55 赞)

JVM使用PermGen来保存加载的类。你可以使用以下方法增加它
-XX:MaxPermSize=384m
如果你使用的是Sun JVM或OpenJDK。

因此,如果你得到一个OutOfMemoryException:PermGen你需要使PermGen更大或者你可能遇到类加载器问题。


#3 热门回答(20 赞)

永久代。有关垃圾收集器的更多详细信息,请参阅javaGC tuning guide