metaspace概述(与compressedClassPointer的关系)

什么是metaspace:

在java8中,metaspace是方法区的实现。java7中对应的实现是永久代。方法区是jvm规范,即所有jvm的具体实现都需要实现相应的分区

什么是compressedClassPointer?

系统从32位增加到64位,jvm技术中用于定位class 和object的node也增加到了64位。为了增加内存利用率,objcet
中指向Klass的指针使用32位,即压缩技术(细节请自行百度),
metaspace的大小:

metaspace大小限制:

在启动参数中,MaxMetaspaceSize可以限制大小。

metaspace与compressedClassPointer的关系:

不是包含关系
Oops(compressedClassPointer)即class space,与类本身想关,主要是结构信息、方法信息等
metaspace包含class space 和non-class space,其中class space是固定值,默认1G,计算oom时只包含占用部分。non-class space是非固定值,只受物理内存限制。 oom规则:
1、如果申请class space时超过限制(默认1G,可配置),oom
2、如果申请class space 时,class space 已使用500M,non-class space 使用了3G,而maxmetaspace 设置为3.5G,则再申请,会oom

翻译地址:https://www.javadoop.com/post/metaspace
外文地址:https://stuefe.de/posts/metaspace/what-is-metaspace/

外文作者是JVM贡献者,很有权威,有时间可以直接看原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值