栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PermGen和Metaspace有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PermGen和Metaspace有什么区别?

从用户角度来看,主要的区别(我认为先前的答案不够强调)是, 默认情况下metaspace自动增加
其大小(达到基础操作系统所提供的大小),而PermGen始终具有固定的最大大小。您可以使用JVM参数为metaspace设置固定的最大值,但不能使PermGen自动增加。

在很大程度上,这只是名称的更改。早在引入PermGen时,就没有Java
EE或动态类的加载(卸载),因此一旦加载了类,它就一直停留在内存中,直到JVM关闭为止,从而实现了 永久
生成。如今,可以在JVM的生命周期内加载和卸载类,因此对于保留元数据的区域,metaspace更有意义。

它们都包含

java.lang.Class
实例,并且都遭受ClassLoader泄漏。唯一不同的是,使用metaspace默认设置后,直到您注意到这些症状为止(因为它会自动增加,它会花更多的时间),因此需要更长的时间,即,您只是将问题推得更远而未解决。OTOH我想用完操作系统内存会比只用完JVM
PermGen更为严重,所以我不确定这是否有很大的改进。

无论您是将JVM与PermGen一起使用还是与metaspace一起使用,如果要进行动态类卸载,都应采取措施防止类加载器泄漏,例如,使用我的ClassLoader
Leak Prevention库。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449676.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号