九、元空间

元空间是永久代的替代品

从JDK1.8开始正式取消了永久代之后,取而代之的就是元空间(MetaSpace),所谓的元空间的本质指的是本机物理内存,其作用和永久代相同。不过元空间和永久代有很大的区别:元空间用的是物理内存(受到本机的物理内存的限制),而永久代是JVM的内存空间,本身受到JVM的限制。两者作用是一样的,都是保存那些基本上不会被清空的操作的,比如字符串常量池。

元空间的调整参数

元空间内存调整参数

  1. -XX:MetaspaceSize 设置元空间的初始大小
  2. -XX:MaxMetaspaceSize 设置元空间的最大容量,默认是没有限制的(受本机物理内存限制)
  3. -XX:MinMetaspaceFreeRatio 执行GC之后,最小的剩余元空间百分比,合理的值可以减少为分配空间导致的垃圾收集
  4. -XX:MaxMetaspaceFreeRatio 执行GC之后,最大的Metaspace剩余空间容量的百分比,合理的值可以减少为释放空间导致的垃圾收集

如果元空间内存不够,会报“OutOfMemoryError:Metaspzace”。

有一个关于OOM的面试题:请问是否知道什么叫OOM?怎么会出现?

OutOfMemoryError指的是内存溢出问题,内存的溢出需要考虑以下的情况:
	|- Java堆内存溢出(Java head space):往往出现在Full GC失败之后;
	|- 永久代(PermGen space):分配的内存不足,或者数据量高于内存;
	|- 元空间(Metaspace):分配的物理内存不足,或者数据量高于物理内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值