JDK 8 中的 PermGen 消除
我已经安装了JDK 8并尝试运行Eclipse。我收到以下警告消息:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m;
support was removed in 8.0
忽略此 VM 选项的原因是什么?
我已经安装了JDK 8并尝试运行Eclipse。我收到以下警告消息:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m;
support was removed in 8.0
忽略此 VM 选项的原因是什么?
忽略这些论点的原因是,由于以下缺点,在JDK8的HotSpot中删除了永久生成
永久一代(PermGen)空间已被完全删除,取而代之的是一个名为Metaspace的新空间。删除PermGen的后果是,显然PermSize和MaxPermSize JVM参数被忽略,你永远不会得到java.lang.OutOfMemoryError:PermGen错误。
元空间的优势
元空间调优
可以使用 -XX:MaxMetaspaceSize 标志设置最大元空间大小,默认值为无限制,这意味着只有系统内存是限制。-XX:MetaspaceSize 调优标志定义了元空间的初始大小 如果不指定此标志,则 Metaspace 将根据运行时的应用程序需求动态调整大小。
更改可在将来启用其他优化和功能
还有改进的GC性能。更多详情
这是 Java 8 的新功能之一,也是 JDK 增强建议 122 的一部分:
从热点 JVM 中删除永久生成,因此需要调整永久生成的大小。
Java 8 中包含的所有 JEP 的列表可以在 JDK8 里程碑页面上找到。