Java 6中的PermGen空间不是堆内存的一部分?
Java 6中的PermGen空间不是堆内存的一部分? 我在阅读关于Java 7中的PermGen空间分配时遇到了这个问题。根据Java 7,它说它是堆内存的一部分,这意味着没有固定的大小限制。 所以方法区域(PermGen)在逻辑上是堆的一部分。 这让我注意到,在java 7之前,这个方法区域并不是堆的一部分。
如果没有,那么PermGen如何在java 6中分配以及在哪个内存下分配?
通常,分配给JVM的整个内存被Java开发人员称为堆内存,因为堆是主要的JVM内存。 但是堆内存是JVM内存中的一个独立组。 它有新的空间和旧的空间。 No-heap是JVM中的另一个使用PermGem(永久代)内存来存储类元数据和字符串常量的组。
PermGen内存不是堆内存的一部分。 它是非堆内存的一部分。 但在Java 8中,永久内存被替换为元空间以支持一些性能改进。
根据这份文件,permgen空间在堆外。 但是对于oracle jvm来说,所以我相信这取决于你使用的jvm。
链接地址: http://www.djcxy.com/p/14525.html上一篇: PermGen Space in Java 6 was not a part of Heap Memory?
下一篇: line Tool to find Java Heap Size and Memory Used (Linux)?