PermGen实际上代表什么?

2022-08-31 08:41:14

我知道PermGen是什么,它的用途是什么,为什么它会失败,如何增加它等等。

我不知道的是PermGen到底代表什么。永久。。。根。。。东西?

有谁知道PermGen真正代表什么?


答案 1

永久一代。细节当然是特定于实现的。

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

只是旧的 Java 对象保留在“永久代”中。


答案 2

JVM 使用 PermGen 来保存加载的类。您可以使用以下方法增加它:

-XX:MaxPermSize=384m

如果您使用的是 Sun JVM 或 OpenJDK。

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


推荐