编程语言
首页 > 编程语言> > Java8 为什么使用元空间替代永久代,这样做有什么好处呢?

Java8 为什么使用元空间替代永久代,这样做有什么好处呢?

作者:互联网

官方给出的解释是: 移除永久代是为了融合 HotSpot JVM 与 JRockit VM 而做出的努力,因为 JRockit 没有永久代,所以不需要配置永久代。

永久代内存经常不够用或发生内存溢出,抛出异常 java.lang.OutOfMemoryError: PermGen。

这是因为在 JDK1.7 版本中,指定的 PermGen 区大小为 8M,由于 PermGen 中类的元数据信息在每次 FullGC 的时候都可能被收集,回收率都偏低,成绩很难令人满意;还有为 PermGen 分配多大的空间很难 确定,PermSize 的大小依赖于很多因素,比如,JVM 加载的 class 总数、常量池的大小和方法的大小等。

 

showtooltip

标签:PermGen,永久,内存,JVM,大小,JRockit,替代,Java8
来源: https://www.cnblogs.com/coding8832/p/14498990.html