Sha*_*med 220 java jvm permgen java-8
我已经安装了JDK 8并尝试运行Eclipse.我收到以下警告信息:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m;
support was removed in 8.0
Run Code Online (Sandbox Code Playgroud)
忽视这个论点的原因是什么?
par*_*085 343
忽略这些论点的原因是,由于以下缺点,HotSpot for JDK8中已删除了永久生成
永久生成(PermGen)空间已被完全删除,并被一个名为Metaspace的新空间所取代.删除PermGen的后果显然是忽略了PermSize和MaxPermSize JVM参数,并且永远不会得到java.lang.OutOfMemoryError:PermGen错误.
MetaSpace的优点
元空间调整
可以使用-XX:MaxMetaspaceSize标志设置最大元空间大小,默认值为unlimited,这意味着只有系统内存是限制.-XX:MetaspaceSize调整标志定义元空间的初始大小如果未指定此标志,则Metaspace将根据运行时的应用程序需求动态地重新调整大小.
Change将在未来启用其他优化和功能
还有改进的GC性能.更多详情
ass*_*ias 113
这是Java 8的新功能之一,是JDK Enhancement Proposals 122的一部分:
从Hotspot JVM中删除永久生成,因此需要调整永久生成的大小.
可以在JDK8里程碑页面上找到将包含在Java 8中的所有JEP的列表.
Shu*_*dey 11
PermGen空间由Java 8中的MetaSpace替换.将忽略PermSize和MaxPermSize JVM参数,并在启动时出现警告.
现在,大多数类元数据的分配都是从本机内存中分配的.*已删除用于描述类元数据的类.
旧的PermGen和新的MetaSpace之间的主要区别在于,您不必强制定义内存使用的上限.您可以保持MetaSpace空间限制无限制.因此,当内存使用量增加时,您将无法获得OutOfMemoryError错误.而是增加保留的本机内存以完全填充增加的内存使用量.
您可以为MetaSpace定义空间的最大限制,然后它将抛出OutOfMemoryError:元数据空间.因此,谨慎地定义此限制非常重要,这样我们就可以避免内存浪费.
| 归档时间: |
|
| 查看次数: |
166184 次 |
| 最近记录: |