美文网首页
PermGen Space 和 Meta Space

PermGen Space 和 Meta Space

作者: 摸摸脸上的胡渣 | 来源:发表于2020-01-14 08:16 被阅读0次

    JVM的实现规范中要求必须实现五个部分,分别是堆、栈、PC计数器、本地方法栈和方法区。
    PermGen Space和Meta Space只不过是不同版本jdk堆方法区不同的实现方案。

    PermGen Space译文为永久代,是HotSpot对JVM规范中方法区的一个具体实现,存活于jdk1.7之前,主要用来存储类信息、常量、静态数据、编译后代码等。
    永久代存在于JVM内存,逻辑上是属于Heap的,但是为了做区分,也称为“非堆”。

    而在jdk1.8以后,Meta space取代了永久代,成为了jdk最新的方法区实现(可能以后meta space也会被取代)。

    有两个比较重要的改变
    1.将常量等信息从永久代中分离,转移到了Heap中
    2.不再属于JVM内存,而是占用机器的本地内存

    参考:

    Java8内存模型—永久代(PermGen)和元空间(Metaspace)

    方法区的Class信息,又称为永久代,是否属于Java堆?

    相关文章

      网友评论

          本文标题:PermGen Space 和 Meta Space

          本文链接:https://www.haomeiwen.com/subject/pvsoactx.html