当前位置:网站首页>方法区、永久代、元空间的关系
方法区、永久代、元空间的关系
2022-07-23 05:50:00 【金清泽】
什么是方法区、永久代、元空间
众所周知,方法区是运行时数据区很重要的一部分,是用来存储类的信息、常量池、方法数据、及时编译器编译的代码等。
永久代是jdk1.7之前对方法区的一个落地实现,存在于堆中,用于存储类的信息和字符串常量池,同样包含SE库的类和方法。在jdk1.7时将字符串常量池从永久代移动到堆中,永久代在jdk8被移除。
元空间和永久代类似,都是对方法区的一个落地实现,他里面存储的数据比永久代纯粹很多,就是类的元数据。元空间的位置不存在于虚拟机中,而是在本地内存中。
为什么以元空间取代永久代
永久代的缺点
- 占用了堆的空间
- 永久代空间太大占用过多堆内存,太小存储类信息有限
- 永久代的 GC 会触发堆的 GC
为什么之前可以这么设计?
当时还是32位机,并看的不是很清楚,到现在64位机,弊端就暴露出来。
元空间解决了永久代的问题,jdk1.8起开始取代永久代存放类信息
元空间存在的问题
元空间是按照类加载器分配空间的,也就是说类加载器加载了一个类,元空间分配给这个类的空间其实是分配给的类加载器,不同的类加载器占用不同的空间,它们之间不共享类信息,如果程序中有大量的类加载器,而它们加载的类非常少,那么有可能会造成大量的空间浪费。
空间分隔开也久可能会造成内存空间碎片化。
边栏推荐
- 根据不同时间统计不同类型的数据(存储过程)
- Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件
- 0 backtracking / dynamic programming medium leetcode526. Beautiful arrangement
- C#输出斐波那契数列
- How does redis implement persistence? Explain in detail the three triggering mechanisms of RDB and their advantages and disadvantages, and take you to quickly master RDB
- OpenCV图像处理(上)几何变换+形态学操作
- 时间复杂度总结(Ο是渐进上界,Ω是渐进下界,p,np,np-hard,NPC问题)
- 聊聊研发团队中的“人”
- yum安装LNMP服务部署
- [untitled]
猜你喜欢
随机推荐
Jupyter notebook添加已存在的虚拟环境
RHCSA--文件内容浏览、cut、uniq、sort、.tr命令使用
融e学答案脚本制作(2020最新)
如何防止订单重复支付?
Prefix and leetcode2100. Suitable for bank robbery days
Copy, paste and drag files between VMware virtual machine and host
CORTEX-A系列处理器
Summary of basic SQL operations
PPP configuration instance learning record
HCIA----04 路由静态扩展、VLAN
Array leetcode977. Square of ordered array
yum安装LNMP服务部署
问题解决:Script file ‘Scripts\pip-script.py‘ is not present.
将指定秒转为时分秒格式
静态路由的搭建
4D毫米波雷达硬件系统架构
TI单芯片毫米波雷达xWR1642硬件架构研究
静态路由配置实例学习记录
How does redis implement persistence? Explain in detail the three triggering mechanisms of RDB and their advantages and disadvantages, and take you to quickly master RDB
常见的cmd命令快速打开程序









