我正在阅读java语言规范和jvm规范。
但我找不到有关PermGen或Metaspace的参考资料。
据我所知,java 7中的PermGen在java 8中更改为Metaspace。 但我在java规范等官方文档中找不到它。
我试图正确理解java的内存区域。
在JVM 7和8规范中,只有大约6个运行时数据区的引用是PC Register
,JVM stacks
,Heap
,Method Area
,Runtime Constant Pool
,Native Method stacks
。
那么,我什么时候可以从中获取信息?
我感激你。
PermGen(永久代)已在JDK 8中完全删除。
在JDK 8中,类元数据现在存储在本机堆中,此空间称为Metaspace。
这里给出了一个非常好的信息:https://dzone.com/articles/java-8-permgen-metaspace
关于差异:What is the difference between PermGen and Metaspace?
Oracle博客参考:https://blogs.oracle.com/poonam/about-g1-garbage-collector,-permanent-generation-and-metaspace