PermGen 实际上代表什么?

发布于 2024-07-09 03:54:20 字数 125 浏览 4 评论 0原文

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

我不知道 PermGen 实际代表什么。 永久...Gen...什么东西?

有谁知道 PermGen 到底代表什么?

I know what PermGen is, what it's used for, why it fails, how to increase it etc.

What I don't know is what PermGen actually stands for. Permanent... Gen... something?

Does anyone know what PermGen actually stands for?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

素食主义者 2024-07-16 03:54:20

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

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

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

Permanent Generation. Details are of course implementation specific.

Briefly, it contains the Java objects associated with classes and interned strings. In Sun's client implementation with sharing on, classes.jsa is memory mapped to form the initial data, with about half read-only and half copy-on-write.

Java objects that are merely old are kept in the Tenured Generation.

我早已燃尽 2024-07-16 03:54:20

PermGen 被 JVM 用于保存加载的类。 可以使用:

-XX:MaxPermSize=384m

如果您使用的是 Sun JVM 或 OpenJDK,则

增加它。 因此,如果您收到 OutOfMemoryException: PermGen,您需要增大 PermGen,否则可能会遇到类加载器问题。

PermGen is used by the JVM to hold loaded classes. You can increase it using:

-XX:MaxPermSize=384m

if you're using the Sun JVM or OpenJDK.

So if you get an OutOfMemoryException: PermGen you need to either make PermGen bigger or you might be having class loader problems.

枉心 2024-07-16 03:54:20

永久一代。 有关更多详细信息,请参阅 java GC 调优指南在垃圾收集器上。

Permanent Generation. See the java GC tuning guide for more details on the garbage collector.

凡尘雨 2024-07-16 03:54:20

与原始问题并不真正相关,但可能有人会发现它有用。 PermGen 确实是 Java 用来保存其类的内存区域。 因此,我们中的许多人都在 PermGen 中遇到过 OOM,例如,如果有很多类的话。

从 Java 8 开始,PermGen 区域已被 MetaSpace 区域取代,MetaSpace 区域效率更高,并且默认情况下不受限制(或更准确地说 - 受本机内存量限制,具体取决于 32 位或 64 位 jvm 和操作系统虚拟内存可用性)。 然而,可以通过某些方式对其进行调整,例如指定区域的最大限制。 您可以在这篇博文中找到更多有用的信息。

Not really related match to the original question, but may be someone will find it useful. PermGen is indeed an area in memory where Java used to keep its classes. So, many of us have came across OOM in PermGen, if there were, for example a lot of classes.

Since Java 8, PermGen area has been replaced by MetaSpace area, which is more efficient and is unlimited by default (or more precisely - limited by amount of native memory, depending on 32 or 64 bit jvm and OS virtual memory availability) . However it is possible to tune it in some ways, by for example specifying a max limit for the area. You can find more useful information in this blog post.

一杆小烟枪 2024-07-16 03:54:20

PermGen 代表永久代。

这里是关于 DDJ 的简短介绍

PermGen stands for Permanent Generation.

Here is a brief blurb on DDJ

鼻尖触碰 2024-07-16 03:54:20

如果我没记错的话, gen 代表一代,就像在分代垃圾收集器中一样(它对待年轻对象的方式不同于中年对象和“永久”对象)。 局部性原则表明最近创建的对象将首先被清除。

If I remember correctly, the gen stands for generation, as in a generational garbage collector (that treats younger objects differently than mid-life and "permanent" objects). Principle of locality suggests that recently created objects will be wiped out first.

不必了 2024-07-16 03:54:20

Permgen 代表永久生成。 它是 JVM 内存区域之一。 它是堆的一部分,通过使用名为 MaxPermSize 的标志来固定大小。

为什么命名为“PermGen”?

这个 PermGen 在 Java 早期被命名。 Permgen mains 保留加载类的所有元数据。 但问题是,一旦一个类被加载,它将保留在 JVM 中,直到 JVM 关闭。 所以选择permgen这个名字。 但后来,类的动态加载出现了,但名称没有改变。 但通过 Java 8,他们也解决了这个问题。 现在permagen更名为MetaSpace,具有动态内存大小。

Permgen stands for Permanent Generation. It is one of the JVM memory areas. It's part of Heap with fixed size by using a flag called MaxPermSize.

Why the name "PermGen" ?

This permgen was named in early days of Java. Permgen mains keeps all the meta data of loaded classes. But the problem is that once a class is loaded it'll remain in the JVM till JVM shutdown. So name permgen is opt for that. But later, dynamic loading of classes came into picture but name was not changed. But with Java 8, they have addressed that issue as well. Now permagen was renamed as MetaSpace with dynamic memory size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文