java - java中元空间区域或permgen的引用在哪里
问题描述
我正在阅读 java 语言规范和 jvm 规范。
但我找不到关于 PermGen 或 Metaspace 的参考资料。
据我所知,java7中的PermGen改为java8中的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
关于差异:PermGen 和 Metaspace 有什么区别?
Oracle 博客参考:https ://blogs.oracle.com/poonam/about-g1-garbage-collector,-permanent-generation-and-metaspace
推荐阅读
- ios - 添加到 Stackview 子视图的 CAShapeLayers 仅在一个子视图上呈现
- json - 为什么golang json number不能像“10”那样转换int或string int?
- keycloak - 令牌自省认为令牌不活跃
- asp.net-core - 果园核心 IRepository
- javascript - 修改将要打开的窗口
- objective-c - 适用于 iPhone X 安全区域的 ConstraintsWithVisualFormat
- java - Java如何将JOptionPane值存储在数组中
- swift - 委托(在创建 sideMenu 时,委托?返回 nil)
- python - python 2.7在运行脚本时出现以下错误
- c# - IHttpActionResult 与 IActionResult