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

我不知道什么是PermGen的真正代表。永久... ...代什么?

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

有帮助吗?

解决方案

永久代。细节当然实施方式特定的。

简言之,它包含的Java对象与类相关联的和实习字符串。在Sun公司的分享在客户端执行,classes.jsa是存储器映射,以形成所述初始数据,其中约一半只读和半写入时复制。

这仅仅是旧保持在年老代Java对象。

其他提示

PermGen的用于由JVM以保持装载的类。可以使用增加它:

-XX:MaxPermSize=384m

如果您正在使用Sun JVM或OpenJDK的。

所以,如果你得到一个OutOfMemoryException:PermGen的需要要么使PermGen的更大,或者您可能有类加载器的问题。

永久代。详情请参见java的 GC优化指南垃圾收集器。

没有真正相关的匹配原来的问题,但可能有人会觉得它有用。 PermGen的的确是一块内存区域,其中Java中使用,以保持它的类。所以,我们很多人都穿过OOM在PermGen的来了,如果有,例如大量的类。

由于Java 8,PermGen的区域已被取代的元空间区域,这是更高效的并且是通过默认无限(或更确切地说 - 由本机内存的量根据32或64位JVM和OS虚拟存储器可用性的限制,) 。然而,它是可以调整它在某些方面,例如通过指定的区域中的最大限制。您可以在这个博客帖子。

PermGen的代表永久代

这里是关于DDJ简要书籍说明

如果正确地记得的根表示的产生,如在世代无用单元收集器(即比中期寿命和“永久”的对象不同地对待年轻的对象)。局部性的原则表明,最近创建的对象将被首先消灭。

PermGen的代表持久代。这是JVM内存的地区之一。它通过使用称为MaxPermSize参数标志是具有固定大小的堆的一部分。

为什么取名 “PermGen的”?

这PermGen的是在Java中的早期命名。 PermGen的电源保持加载类的所有元数据。但问题是,一旦一个类被加载,它会留在JVM直到JVM关机。所以名字PermGen的是选择那个。但后来,类动态加载进入了画面,但名字没有改变。但随着的Java 8 后,他们已经解决了这个问题为好。现在的 permagen 更名为的元空间使用动态存储器大小。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top