没有合适的资源?快使用搜索试试~ 我知道了~
JDK8的JVM内存结构,元空间替代永久代成为方法区及常量池的变化1
需积分: 0 7 下载量 51 浏览量
2022-08-03
19:39:40
上传
评论
收藏 504KB PDF 举报
温馨提示
试读
2页
(1)类及方法的信息等比较难确定其大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出,太 (2)永久代会为 GC 带来不必要的复杂度,并且回收效率偏
资源详情
资源评论
资源推荐
JDK8的JVM内存结构,元空间替代永久代成为方法区及常量池的变化
JVM
的知
识
这里
总
结的
很
详
细
:
https://github.com/doocs/jvm/blob/master/README.md
,
因
此
在
本
博
客
也不会再
对
其中
的
东
西
重
复
总
结
了
。
现在很多文章关于JVM内存结构的说法模糊不清,这里记录一下以前的一些比较模糊的JVM相关概念的重新
认识。都是经过多处考证对比的。
MetaSpace代替Perm Gen
即元空间代替了永久代,所以JVM关于永久代的参数也都作废了,取而代之的是关于MetaSpace空间的参
数。而且Mete Space是属于直接内存。示意图:
(图片来源于网络)
为什么要在直接内存里拿出来一块内存作为元空间取代永久代呢?主要的说法有以下几个:
(1)类及方法的信息等比较难确定其大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出,太
大则容易导致老年代溢出。
(2)永久代会为 GC 带来不必要的复杂度,并且回收效率偏低。
即方便分配管理,因为直接内存空间比较充足;便于回收,因为永久代本来回收垃圾的事件发生概率很低,直接从
JVM中拿出可以提高回收效率。
方法区与永久代的关系
很多文章里喜欢把方法区等同与永久代,永久代既然没了,方法区也就没了。但我认为方法区只是一种逻辑
上的概念,永久代指物理上的堆内存的一块空间,这块实际的空间完成了方法区存储字节码、静态变量、常量的功
能等等。既然如此,现在元空间也可以认为是新的方法区的实现了。
常量池随永久代的变化
常量池主要可以分为以下几种:
晕过前方
- 粉丝: 113
- 资源: 328
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0