为什么使用元空间替代了永久代
创作时间:
作者:
@小白创作中心
为什么使用元空间替代了永久代
引用
CSDN
1.
https://blog.csdn.net/qq_62097431/article/details/142682504
在Java 8中,元空间(Metaspace)替代了永久代(PermGen),这一变化对JVM的内存管理和垃圾回收机制产生了重要影响。本文将详细解释为什么做出这一改变,以及元空间和永久代在内存管理和垃圾回收方面的区别。
为什么使用元空间替代了永久代
简单来说:
- 永久代是JVM内存是有上限的,而元空间是存储本地内存里,内存上限比较大。避免频繁出现OOM问题。
- 永久代对象是通过Full GC进行内存清理,元空间是由操作系统内存管理机制处理,简化FullGC,提高性能
- Oracle 要合并 Hotspot 和 JRockit 的代码,而 JRockit 没有永久代
底层
在 Java7 里面,JVM 运行时数据区是这样的(如图)。
在 Hotspot 虚拟机中,方法区的实现是在永久栈里面,它里面主要存储运行时常量池、Klass 类元信息等。
永久代属于 JVM 运行时内存中的一块存储空间,我们可以通过-XX:PermSize 来设置永久代的大小。
当内存不够的时候,会触发垃圾回收
在 JDK1.8 里面,JVM 运行时数据区是这样的(如图)
在 Hotspot 虚拟机中,取消了永久栈,由元空间来实现方法区的数据存储。
元空间不属于 JVM 内存,而是直接使用本地内存,因此不需要考虑 GC 问题。
默认情况下元空间是可以无限制地使用本地内存的,但是我们也可以使用 JVM 参数来限制内存使用大小。
永久代和元空间的内存清理
在 Java 中,永久代(PermGen)使用的是 Full GC(全量垃圾回收)进行内存清理,而元空间(Metaspace)的内存回收机制与永久代不同,并不直接使用传统意义上的 Full GC 来进行回收。
一、永久代与 Full GC - 永久代的特点:
- 永久代是 Java 7 及之前版本中用于存储类信息、常量、静态变量等数据的区域。它的大小是固定的,在运行过程中如果永久代空间不足,会触发 Full GC 来尝试回收不再使用的类和其他资源。
- 例如,当大量的类被加载到永久代中,导致永久代空间耗尽时,JVM 会启动 Full GC 来清理一些不再使用的类,释放永久代空间。
- Full GC 的影响:
- Full GC 是一种较为耗时的垃圾回收操作,会暂停整个应用程序的执行,直到垃圾回收完成。频繁的 Full GC 会导致应用程序的响应时间变长,性能下降。
- 例如,在一个高并发的应用中,如果频繁触发 Full GC,可能会导致用户请求的响应时间明显增加,影响用户体验。
二、元空间与内存回收
- 元空间的特点:
- 从 Java 8 开始,引入了元空间来替代永久代。元空间的存储位置是本地内存(Native Memory),而不是 JVM 的堆内存。元空间的大小不再受限于 JVM 的参数设置,可以根据实际需要动态调整。
- 例如,元空间可以随着应用程序的运行动态地增长或收缩,以适应类加载的需求。
- 元空间的回收机制:
- 元空间的内存回收主要是由操作系统的内存管理机制来处理。当不再使用的类被卸载时,其占用的元空间内存会被释放回操作系统。
- 与永久代不同,元空间的回收不会触发传统的 Full GC。而是在类加载器被卸载或者类不再被使用时,由 JVM 自动进行回收。
- 例如,当一个应用程序中的某个类加载器不再被使用时,它所加载的类占用的元空间内存会被回收。
总的来说,元空间的引入减少了对 Full GC 的依赖,提高了垃圾回收的效率,同时也降低了由于永久代空间不足而导致的性能问题。
详细来说: - 在 1.7 版本里面,永久内存是有上限的,虽然我们可以通过参数来设置,但是 JVM 加载的 class总数、大小是很难确定的。所以很容易出现 OOM 问题。但是元空间是存储在本地内存里面,内存上限比较大,可以很好地避免这个问题。
- 永久代的对象是通过 FullGC 进行垃圾收集,也就是和老年代同时实现垃圾收集。替换成元空间以后,简化了 Full GC。可以在不进行暂停的情况下并发地释放类数据,同时也提升了GC 的性能
- Oracle 要合并 Hotspot 和 JRockit 的代码,而 JRockit 没有永久代。
热门推荐
微信、百度相继接入DeepSeek,多家大模型厂商宣布免费!AI应用迎来普惠化?
守护财富安全:金融诈骗防范与应对实战手册
中医专家解析:脾胃虚寒的原因与调理方法
教师工资迎来巨大调整:工龄决定薪酬,职称不再是唯一标准!
如何理解投资泡沫及其影响?投资泡沫如何识别和应对?
胶合板和建筑模板有什么区别
开元盛世的代价,唐玄宗李隆基与太平公主的终极决战!
时代性与多元性的追求:番茄小说的内容生态观察
车主必读丨驾驶证被注销、撤销、扣留、吊销有什么区别,如何处理
常练八段锦,能保护身体多个系统器官!一起跟着视频学起来!
2024年最好看的国产片,我选这10部
熬夜对身体的十大危害及五种补救方法
瓷砖胶黏剂选择和使用方法详解
马超:三国五虎上将的传奇人生
汉语词源与汉字的起源
人工可控核聚变之路还有多远
人工可控核聚变之路还有多远
郑州市中原区须水镇中心小学:探秘人工智能 点燃科技梦想
减重到底应该怎么“吃”?
非京籍不办居住证,竟然影响这么大?还没办的赶紧!
内卷的童年:古代玛雅社会的儿童生活
《竹枝词》:一首展现初恋少女内心世界的诗篇
急性中毒昏迷患者应该早期插管吗?
"退市新规"并非针对小盘股!出清垃圾股,助力股市正向循环
安吉打造产业“新名片”:推乡村振兴质效提升
安吉打造产业“新名片”:推乡村振兴质效提升
香河旅游全攻略:运河风光、万亩荷塘与千年文化
2025年装修材料性价比选择指南:预算缩水也能装出高级感
LAMMPS分子动力学指南:从理论基础到实践应用
2024羽毛球拍选购指南:重量、平衡点、材质全面解析