Java 8中MetaSpace的用途是什么?

Java 8中MetaSpace的用途是什么?,第1张

Java 8中MetaSpace的用途是什么?

默认情况下是否收集metaSpace?

是的,GC会在元空间变满时在元空间上运行,它还会动态增加(如果允许)分配给元数据的内存

甚至通过添加-XX:+
CMSClassUnloadingEnabled之类的参数来收集PermGen的GC,那么什么使metaSpace比PermGen更好呢?

改进之处在于元空间的动态扩展,而这是permgen无法做到的。

metaSpace基于本机内存,因此它将Java对象保留在磁盘上而不是VM上吗?

根据对元空间的描述,它仅使用本机内存(不分页)。

根据Pierre-Hugues
Charbonneau(链接)的研究,很明显,元空间的引入并不一定解决OOM问题,它充其量只是解决该问题的绷带,它试图动态调整元空间的内存大小以适应越来越多的类被加载,可能会产生不可控制地增长的副作用(只要本地内存允许)。

通过将

MaxmetaspaceSize
参数设置为JVM并运行提供的示例程序,可以实现著名的OOM错误。

非常感谢Pierre-Hugues Charbonneau。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5586498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存